lkml.org 
[lkml]   [2011]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: linux-next: Tree for March 25 (Call trace: RCU|workqueues|block|VFS|ext4 related?)
    On Sat, Mar 26, 2011 at 08:25:29PM -0700, Paul E. McKenney wrote:
    > On Sun, Mar 27, 2011 at 03:30:34AM +0200, Sedat Dilek wrote:
    > > On Sun, Mar 27, 2011 at 1:09 AM, Paul E. McKenney
    > > <paulmck@linux.vnet.ibm.com> wrote:
    > > > On Sat, Mar 26, 2011 at 11:15:22PM +0100, Sedat Dilek wrote:

    [ . . . ]

    > > >> But then came RCU :-(.
    > > >
    > > > Well, if it turns out to be a problem in RCU I will certainly apologize.
    > > >
    > >
    > > No, that's not so dramatic.
    > > Dealing with this RCU issue has nice side-effects: I remembered (and
    > > finally did) to use a reduced kernel-config set.
    > > The base for it I created with 'make localmodconfig' and did some
    > > manual fine-tuning afterwards (throw out media, rc, dvd, unneeded FSs,
    > > etc.).
    > > Also, I can use fresh gcc-4.6 (4.6.0-1) from the official Debian repos.
    > >
    > > So, I started building with
    > > "revert-rcu-patches/0001-Revert-rcu-introduce-kfree_rcu.patch".
    > > I will let you know.
    >
    > And please also check for tasks consuming all available CPU.

    And I still cannot reproduce with the full RCU stack (but based off of
    2.6.38 rather than -next). Nevertheless, if you would like to try a
    speculative patch, here you go.

    Thanx, Paul

    ------------------------------------------------------------------------

    rcu: further lower priority in rcu_yield()

    Although rcu_yield() dropped from real-time to normal priority, there
    is always the possibility that the competing tasks have been niced.
    So nice to 19 in rcu_yield() to help ensure that other tasks have a
    better chance of running.

    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

    diff --git a/kernel/rcutree.c b/kernel/rcutree.c
    index 759f54b..5477764 100644
    --- a/kernel/rcutree.c
    +++ b/kernel/rcutree.c
    @@ -1492,6 +1492,7 @@ static void rcu_yield(void (*f)(unsigned long), unsigned long arg)
    mod_timer(&yield_timer, jiffies + 2);
    sp.sched_priority = 0;
    sched_setscheduler_nocheck(current, SCHED_NORMAL, &sp);
    + set_user_nice(current, 19);
    schedule();
    sp.sched_priority = RCU_KTHREAD_PRIO;
    sched_setscheduler_nocheck(current, SCHED_FIFO, &sp);

    \
     
     \ /
      Last update: 2011-03-27 07:11    [W:0.024 / U:30.096 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site