rcu: Tone down debugging during boot-up and shutdown.
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 10 Mar 2013 22:44:52 +0000 (15:44 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 13 Mar 2013 21:44:25 +0000 (14:44 -0700)
In some situations, randomly delaying RCU grace-period initialization
can cause more trouble than help.  This commit therefore restricts this
type of RCU self-torture to runtime, giving it a rest during boot and
shutdown.

Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c

index 71df6f9f5ce6ad42950bcbbfa52ea3959ef4f406..0e522504ae37c710c006d424a6933fc3ae5509c8 100644 (file)
@@ -1319,7 +1319,8 @@ static int rcu_gp_init(struct rcu_state *rsp)
                                            rnp->grphi, rnp->qsmask);
                raw_spin_unlock_irq(&rnp->lock);
 #ifdef CONFIG_PROVE_RCU_DELAY
-               if ((random32() % (rcu_num_nodes * 8)) == 0)
+               if ((random32() % (rcu_num_nodes * 8)) == 0 &&
+                   system_state == SYSTEM_RUNNING)
                        schedule_timeout_uninterruptible(2);
 #endif /* #ifdef CONFIG_PROVE_RCU_DELAY */
                cond_resched();