summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2024-07-02 06:24:29 +0200
committerNeeraj Upadhyay <neeraj.upadhyay@kernel.org>2024-08-14 20:40:50 +0200
commit7c72dedb0079e62c1c75dbab038332017f34a6b8 (patch)
treebf6c4ebe3b553744fc2a3629cab84f5e2fe2d1c8 /kernel/rcu
parentrcu: Extract synchronize_rcu_expedited_stall() from synchronize_rcu_expedited... (diff)
downloadlinux-7c72dedb0079e62c1c75dbab038332017f34a6b8.tar.xz
linux-7c72dedb0079e62c1c75dbab038332017f34a6b8.zip
rcu: Summarize expedited RCU CPU stall warnings during CSD-lock stalls
During CSD-lock stalls, the additional information output by expedited RCU CPU stall warnings is usually redundant, flooding the console for not good reason. However, this has been the way things work for a few years. This commit therefore uses rcutree.csd_lock_suppress_rcu_stall kernel boot parameter that causes expedited RCU CPU stall warnings to be abbreviated to a single line when there is at least one CPU that has been stuck waiting for CSD lock for more than five seconds. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/tree_exp.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
index 17dd5169012d..d4be644afb50 100644
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
@@ -553,6 +553,10 @@ static void synchronize_rcu_expedited_stall(unsigned long jiffies_start, unsigne
struct rcu_node *rnp;
struct rcu_node *rnp_root = rcu_get_root();
+ if (READ_ONCE(csd_lock_suppress_rcu_stall) && csd_lock_is_stuck()) {
+ pr_err("INFO: %s detected expedited stalls, but suppressed full report due to a stuck CSD-lock.\n", rcu_state.name);
+ return;
+ }
pr_err("INFO: %s detected expedited stalls on CPUs/tasks: {", rcu_state.name);
ndetected = 0;
rcu_for_each_leaf_node(rnp) {