Re: [PATCH] sched: fix rt_nr_migratory corruption raised inpush_rt_task()

From: Mike Galbraith
Date: Tue May 31 2011 - 22:21:34 EST


On Tue, 2011-05-31 at 21:56 +0800, Hillf Danton wrote:
> On Tue, May 31, 2011 at 3:36 PM, Mike Galbraith <efault@xxxxxx> wrote:
> > On Mon, 2011-05-30 at 21:39 +0800, Hillf Danton wrote:
> >> When pushing, if a pushable task could not be pushed, it is dequeued with no
> >> updating the rt_nr_migratory element of RT run-queue, then rt_nr_migratory is
> >> corrupted, which is fixed by removing the dequeue operation.
> >
> > Hm. I think you're right that this dequeue_pushable_task() call can be
> > removed, at least I didn't see it's reason for existing. I'd word it a
> > bit differently though, and not return 1 unless we really did push.
> >
>
> Hi Mike
>
> Your message shows what is called professional work, but something lost,
>
> > From: Hillf Danton <dhillf@xxxxxxxxx>
> >
> > sched, rt: fix rq->rt.pushable_tasks bug in push_rt_task()
> >
> > Do not call dequeue_pushable_task() when failing to push an eligible
> > task, as it remains pushable, merely not at this particular moment.
> >
> > Signed-off-by: Hillf Danton <dhillf@xxxxxxxxx>
>
> Signed-off-by: Mike Galbraith <efault@xxxxxx>
>
> right?

Well, you did the legwork, but I resent it as requested.

> > ---
> > kernel/sched_rt.c | 15 ++++++++-------
> > 1 file changed, 8 insertions(+), 7 deletions(-)
> >
> > Index: linux-2.6.40.git/kernel/sched_rt.c
> > ===================================================================
>
> And how to drive git to print the above two lines?

That's easy, I used quilt :) I'm no master of git-fu (wimpy whitebelt),
use git for hunting, but quilt for twiddling.

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