Messages in this thread |  | | Date | Wed, 13 Feb 2013 23:07:44 +0800 | From | Alex Shi <> | Subject | Re: [patch v4 03/18] sched: fix find_idlest_group mess logical |
| |
On 02/12/2013 06:16 PM, Peter Zijlstra wrote: > On Thu, 2013-01-24 at 11:06 +0800, Alex Shi wrote: >> There is 4 situations in the function: >> 1, no task allowed group; >> so min_load = ULONG_MAX, this_load = 0, idlest = NULL >> 2, only local group task allowed; >> so min_load = ULONG_MAX, this_load assigned, idlest = NULL >> 3, only non-local task group allowed; >> so min_load assigned, this_load = 0, idlest != NULL >> 4, local group + another group are task allowed. >> so min_load assigned, this_load assigned, idlest != NULL >> >> Current logical will return NULL in first 3 kinds of scenarios. >> And still return NULL, if idlest group is heavier then the >> local group in the 4th situation. >> >> Actually, I thought groups in situation 2,3 are also eligible to host >> the task. And in 4th situation, agree to bias toward local group. > > I'm not convinced this is actually a cleanup.. taken together with patch > 4 (which is a direct consequence of this patch afaict) you replace one > conditional with 2. >
The current logical will always miss the eligible CPU in the 3rd situation. 'sd = sd->child' still skip the non-local group eligible CPU.
-- Thanks Alex
|  |