rcu: avoid pointless blocked-task warnings
authorPaul E. McKenney <[email protected]>
Wed, 12 Jan 2011 22:18:11 +0000 (14:18 -0800)
committerPaul E. McKenney <[email protected]>
Fri, 14 Jan 2011 12:58:08 +0000 (04:58 -0800)
If the RCU callback-processing kthread has nothing to do, it parks in
a wait_event().  If RCU remains idle for more than two minutes, the
kernel complains about this.  This commit changes from wait_event()
to wait_event_interruptible() to prevent the kernel from complaining
just because RCU is idle.

Reported-by: Russell King <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>
Tested-by: Thomas Weber <[email protected]>
Tested-by: Russell King <[email protected]>
kernel/rcutiny.c

index 0344937247495d69b3ef5255ace0d94b2250fac2..0c343b9a46d565cde538f153894010748f1c924d 100644 (file)
@@ -189,7 +189,8 @@ static int rcu_kthread(void *arg)
        unsigned long flags;
 
        for (;;) {
-               wait_event(rcu_kthread_wq, have_rcu_kthread_work != 0);
+               wait_event_interruptible(rcu_kthread_wq,
+                                        have_rcu_kthread_work != 0);
                morework = rcu_boost();
                local_irq_save(flags);
                work = have_rcu_kthread_work;