Re: [PATCH] sched: fix need_resched() when checking peempt

From: Yong Zhang
Date: Tue May 24 2011 - 23:24:35 EST


On Tue, May 24, 2011 at 9:50 PM, Hillf Danton <dhillf@xxxxxxxxx> wrote:
> On Tue, May 24, 2011 at 9:39 PM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>> On Tue, 2011-05-24 at 21:27 +0800, Hillf Danton wrote:
>>> When checking if current task could be preempted by a newly woken task,
>>> further check could be bypassed if the current thread is different from
>>> the current task of run-queue, and it is corrected accordingly.
>>
>> Ug, that change log is an obfuscated mess. But looking at the actual
>> patch, I figured what you wanted to say. How about this:
>>
>> ----
>> The RT preempt check tests the wrong task if NEED_RESCHED is set. It
>> currently checks the local CPU task. It is suppose to check the task
>> that is running on the run queue we are about to wake another task on.
>> ----
>>
> Thanks, it is great changelog:)

Good catch.

Reviewed-by: Yong Zhang <yong.zhang0@xxxxxxxxx>

BTW, this may be the reason for we could trigger
WARN_ON_ONCE(test_tsk_need_resched(next));
https://lkml.org/lkml/2010/12/20/28

Peter, Mike, how do you think about it?

Thanks,
Yong


--
Only stand for myself
--
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/