On 14 December 2013 09:50, Alex Shi alex.shi@linaro.org wrote:
On 12/13/2013 10:10 PM, Vincent Guittot wrote:
Thanks for your comments, Vincent!
I didn't see sth special for CPU domain level unless in wakeup balance. but this case is only for running tasks. So why you said 'it's already possible'? Did I miss sth in scheduler?
I haven't been clear in my explanation. I wanted to say that it's possible to move a task directly to the right CPU node without spurious migration in the SMT level, then MC level before
Let take the topology example describe just below:
SMT | 0-1 | 2-3 | 4-5 | 6-7 | MC | 0-3 | 4-7 | CPU | 0-7
Now, let imagine that there are 2 tasks (A and B) on cpu6. The next idle balance will move directly one of the 2 task on cpu0 which is the best final cpu
Thanks Vincent!
The nohz idle balance will pick up idle cpu the minimum cpu number. So,
Yes, and that's why i'm looking for the closest idle cpu for doing idle balance in my packing patches because i'm looking for powersaving. Buit it could be interesting to do the opposite for a performance pov. Instead of simply selecting the 1st cpu in the idle mask, we can select a idle cpu that is far from the current one in order to to make the spread of task more efficient
in my example, tasks on cpu0, it is impossible to move task to another MC. So you have to assume tasks on cpu6, not cpu0. :) And in fact newidle balance will randomly happen and then moving task randomly. They will slightly ease this unnecessary task moving, but can not solving it.
-- Thanks Alex