lkml.org 
[lkml]   [2013]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/urgent 1/2] rcu: Prevent soft-lockup complaints about no-CBs CPUs
    Date
    From: Paul Gortmaker <paul.gortmaker@windriver.com>

    The wait_event() at the head of the rcu_nocb_kthread() can result in
    soft-lockup complaints if the CPU in question does not register RCU
    callbacks for an extended period. This commit therefore changes
    the wait_event() to a wait_event_interruptible().

    Reported-by: Frederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    kernel/rcutree_plugin.h | 3 ++-
    1 files changed, 2 insertions(+), 1 deletions(-)

    diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
    index f6e5ec2..43dba2d 100644
    --- a/kernel/rcutree_plugin.h
    +++ b/kernel/rcutree_plugin.h
    @@ -2366,10 +2366,11 @@ static int rcu_nocb_kthread(void *arg)
    for (;;) {
    /* If not polling, wait for next batch of callbacks. */
    if (!rcu_nocb_poll)
    - wait_event(rdp->nocb_wq, rdp->nocb_head);
    + wait_event_interruptible(rdp->nocb_wq, rdp->nocb_head);
    list = ACCESS_ONCE(rdp->nocb_head);
    if (!list) {
    schedule_timeout_interruptible(1);
    + flush_signals(current);
    continue;
    }

    --
    1.7.8


    \
     
     \ /
      Last update: 2013-01-05 18:41    [W:3.361 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site