Re: [PATCH] sched: make sure sched_child_runs_first WORK

From: Peter Zijlstra
Date: Tue Apr 28 2009 - 10:01:33 EST


On Tue, 2009-04-28 at 21:55 +0800, marywangran wrote:
>
>
> 2009/4/28 Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> On Tue, 2009-04-28 at 19:26 +0800, marywangran wrote:
>
>
> > Signed-off-by: Ya Zhao <marywangran@xxxxxxxxx>
> > ---
> > --- linux-2.6.28.1/kernel/sched_fair.c.orig 2009-04-28
> > 22:26:00.000000000 +0800
> > +++ linux-2.6.28.1/kernel/sched_fair.c 2009-04-28 22:34:49.000000000 +0800
> > @@ -1628,12 +1628,13 @@ static void task_new_fair(struct rq *rq,
> >
> > /* 'curr' will be NULL if the child belongs to a different group */
> > if (sysctl_sched_child_runs_first && this_cpu == task_cpu(p) &&
> > - curr && curr->vruntime < se->vruntime) {
> > + curr){
> > /*
> > * Upon rescheduling, sched_class::put_prev_task() will place
> > * 'current' within the tree based on its new key value.
> > */
> > - swap(curr->vruntime, se->vruntime);
> > + if( curr->vruntime < se->vruntime )
> > + swap(curr->vruntime, se->vruntime);
> > resched_task(rq->curr);
> > }
>
>
> Aside from the style issue the patch seems sensible enough.
>
> Thing is, do we really care about child runs first?
>
> but if the child runs last,there maybe more copy-on-write.User can
> disable child-runs-first if he can confirm the child would not do exec
> or so . now that the kernel provide the policy,why we implement it
> halfway?

Sure, I just wanted to raise the issue, child-runs-first doesn't really
work reliably on SMP, and since even embedded is moving to SMP the value
of keeping it around seems to be less each day.

But as long as we do have it, I agree that your patch is wanted.
--
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/