lkml.org 
[lkml]   [2008]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] sched: do not stop ticks when cpu is not idle

    * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:

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

    nope:

    [ 0.188011] =================================
    [ 0.188011] [ INFO: inconsistent lock state ]
    [ 0.188011] 2.6.26-tip-03835-g9d964b9-dirty #20198
    [ 0.188011] ---------------------------------
    [ 0.188011] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
    [ 0.188011] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
    [ 0.188011] (&rq->rq_lock_key){+...}, at: [<ffffffff816a4b35>] schedule+0x191/0x900
    [ 0.188011] {in-hardirq-W} state was registered at:
    [ 0.188011] [<ffffffffffffffff>] 0xffffffffffffffff

    Ingo


    \
     
     \ /
      Last update: 2008-07-19 00:31    [W:0.034 / U:30.632 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site