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

From: Mike Galbraith
Date: Wed May 25 2011 - 00:44:45 EST


On Wed, 2011-05-25 at 12:34 +0800, Yong Zhang wrote:
> On Wed, May 25, 2011 at 11:24 AM, Yong Zhang <yong.zhang0@xxxxxxxxx> wrote:
> > 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?
>
> Since rq->lock protects both, that issue needs more digging :)

Yeah, good rainy day project.

-Mike

--
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/