diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-06-30 14:43:52 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-08-19 20:18:02 -0400 |
commit | 742734eea0cf5314cde5945963ed964be167bd84 (patch) | |
tree | 5716bb62b38f7c65099ff8bc3142457e60637eb3 | |
parent | b163760e37047781b37c412cde54d146ac4b651f (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.c | 11 |
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); | |||
143 | module_param(qhimark, int, 0); | 143 | module_param(qhimark, int, 0); |
144 | module_param(qlowmark, int, 0); | 144 | module_param(qlowmark, int, 0); |
145 | 145 | ||
146 | #ifdef CONFIG_RCU_CPU_STALL_DETECTOR | ||
147 | int rcu_cpu_stall_suppress __read_mostly; | ||
148 | module_param(rcu_cpu_stall_suppress, int, 0); | ||
149 | #endif /* #ifdef CONFIG_RCU_CPU_STALL_DETECTOR */ | ||
150 | |||
146 | static void force_quiescent_state(struct rcu_state *rsp, int relaxed); | 151 | static void force_quiescent_state(struct rcu_state *rsp, int relaxed); |
147 | static int rcu_pending(int cpu); | 152 | static 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 | ||
453 | int rcu_cpu_stall_panicking __read_mostly; | 458 | int rcu_cpu_stall_suppress __read_mostly; |
454 | 459 | ||
455 | static void record_gp_stall_check_time(struct rcu_state *rsp) | 460 | static 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 | ||
549 | static int rcu_panic(struct notifier_block *this, unsigned long ev, void *ptr) | 554 | static 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 | ||