Messages in this thread | | | Subject | Re: [PATCH] sched: do not stop ticks when cpu is not idle | From | Peter Zijlstra <> | Date | Fri, 18 Jul 2008 13:08:03 +0200 |
| |
On Fri, 2008-07-18 at 12:54 +0200, Ingo Molnar wrote: > * Ingo Molnar <mingo@elte.hu> wrote: > > > --- a/kernel/sched.c > > +++ b/kernel/sched.c > > @@ -4446,7 +4446,8 @@ need_resched_nonpreemptible: > > rq->nr_switches++; > > rq->curr = next; > > ++*switch_count; > > - > > + if (rq->curr != rq->idle) > > + tick_nohz_restart_sched_tick(); > > context_switch(rq, prev, next); /* unlocks the rq */ > > hm, one problem i can see is lock dependencies. This code is executed > with the rq lock while tick_nohz_restart_sched_tick() takes hr locks => > not good. So i havent applied this just yet - this needs to be solved > differently.
Actually, that should work these days...
Also, I assume Eric actually tested this with lockdep enabled (right, Eric?) and that'll shout - or rather, lockup hard in this case - if you got it wrong.
| |