aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-06-30 14:43:52 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-19 20:18:02 -0400
commit742734eea0cf5314cde5945963ed964be167bd84 (patch)
tree5716bb62b38f7c65099ff8bc3142457e60637eb3
parentb163760e37047781b37c412cde54d146ac4b651f (diff)
rcu: add boot parameter to suppress RCU CPU stall warning messages
Although the RCU CPU stall warning messages are a very good way to alert people to a problem, once alerted, it is sometimes helpful to shut them off in order to avoid obscuring other messages that might be being used to track down the problem. Although you can rebuild the kernel with CONFIG_RCU_CPU_STALL_DETECTOR=n, this is sometimes inconvenient. This commit therefore adds a boot parameter named "rcu_cpu_stall_suppress" that shuts these messages off without requiring a rebuild (though a reboot might be needed for those not brave enough to patch their kernel while it is running). This message-suppression was already in place for the panic case, so this commit need only rename the variable and export it via module_param(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--kernel/rcutree.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 5b1c3c231bae..f3d5906cbc21 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -143,6 +143,11 @@ module_param(blimit, int, 0);
143module_param(qhimark, int, 0); 143module_param(qhimark, int, 0);
144module_param(qlowmark, int, 0); 144module_param(qlowmark, int, 0);
145 145
146#ifdef CONFIG_RCU_CPU_STALL_DETECTOR
147int rcu_cpu_stall_suppress __read_mostly;
148module_param(rcu_cpu_stall_suppress, int, 0);
149#endif /* #ifdef CONFIG_RCU_CPU_STALL_DETECTOR */
150
146static void force_quiescent_state(struct rcu_state *rsp, int relaxed); 151static void force_quiescent_state(struct rcu_state *rsp, int relaxed);
147static int rcu_pending(int cpu); 152static int rcu_pending(int cpu);
148 153
@@ -450,7 +455,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
450 455
451#ifdef CONFIG_RCU_CPU_STALL_DETECTOR 456#ifdef CONFIG_RCU_CPU_STALL_DETECTOR
452 457
453int rcu_cpu_stall_panicking __read_mostly; 458int rcu_cpu_stall_suppress __read_mostly;
454 459
455static void record_gp_stall_check_time(struct rcu_state *rsp) 460static void record_gp_stall_check_time(struct rcu_state *rsp)
456{ 461{
@@ -530,7 +535,7 @@ static void check_cpu_stall(struct rcu_state *rsp, struct rcu_data *rdp)
530 long delta; 535 long delta;
531 struct rcu_node *rnp; 536 struct rcu_node *rnp;
532 537
533 if (rcu_cpu_stall_panicking) 538 if (rcu_cpu_stall_suppress)
534 return; 539 return;
535 delta = jiffies - rsp->jiffies_stall; 540 delta = jiffies - rsp->jiffies_stall;
536 rnp = rdp->mynode; 541 rnp = rdp->mynode;
@@ -548,7 +553,7 @@ static void check_cpu_stall(struct rcu_state *rsp, struct rcu_data *rdp)
548 553
549static int rcu_panic(struct notifier_block *this, unsigned long ev, void *ptr) 554static int rcu_panic(struct notifier_block *this, unsigned long ev, void *ptr)
550{ 555{
551 rcu_cpu_stall_panicking = 1; 556 rcu_cpu_stall_suppress = 1;
552 return NOTIFY_DONE; 557 return NOTIFY_DONE;
553} 558}
554 559