Re: [PATCH] sched: Get rid of unnecessary checks from select_idle_sibling

From: Namhyung Kim
Date: Thu Jan 10 2013 - 00:51:52 EST


On Wed, 09 Jan 2013 16:34:39 +0800, Alex Shi wrote:
> On 01/09/2013 03:54 PM, Namhyung Kim wrote:
>> Hi Alex,
>>
>> On Wed, 09 Jan 2013 15:33:40 +0800, Alex Shi wrote:
>>> On 01/09/2013 02:50 PM, Namhyung Kim wrote:
>>>> From: Namhyung Kim <namhyung.kim@xxxxxxx>
>>>>
>>>> AFAICS @target cpu of select_idle_sibling() is always either prev_cpu
>>>> or this_cpu. So no need to check it again and the conditionals can be
>>>> consolidated.
>> [snip]
>>> Uh, we don't know if the target is this_cpu or previous cpu, If we just
>>> check the target idle status, we may miss another idle cpu. So this
>>> patch change the logical in this function.
>>
>> select_idle_sibling() is called only in select_task_rq_fair() if it
>> found a suitable affine_sd. The default target is the 'prev_cpu' of the
>> task but if wake_affine() returns true it'd be (this) 'cpu'.
>>
>> I cannot see where the prev_cpu or the cpu is set to another one before
>> calling select_idle_sibling.
>
> The old logical will return directly whenever prev_cpu or this cpu idle,
> but your new logical just has one chance.

Sorry, I can't get your point. Could you elaborate on it a bit more?

Thanks,
Namhyung
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/