From 5cd650684891090adcca798852d23a56cb116617 Mon Sep 17 00:00:00 2001 From: John Ogness <john.ogness@linutronix.de> Date: Mon, 11 Sep 2023 15:53:39 +0000 Subject: [PATCH 142/204] rcu: Mark emergency section in rcu stalls Mark an emergency section within print_other_cpu_stall(), where RCU stall information is printed. In this section, the CPU will not perform console output for the printk() calls. Instead, a flushing of the console output will triggered when exiting the emergency section. Signed-off-by: John Ogness <john.ogness@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/rcu/tree_stall.h | 5 +++++ 1 file changed, 5 insertions(+) Index: linux-6.6.58-rt45/kernel/rcu/tree_stall.h =================================================================== @ linux-6.6.58-rt45/kernel/rcu/tree_stall.h:11 @ */ #include <linux/kvm_para.h> +#include <linux/console.h> ////////////////////////////////////////////////////////////////////////////// // @ linux-6.6.58-rt45/kernel/rcu/tree_stall.h:608 @ static void print_other_cpu_stall(unsign if (rcu_stall_is_suppressed()) return; + nbcon_cpu_emergency_enter(); + /* * OK, time to rat on our buddy... * See Documentation/RCU/stallwarn.rst for info on how to debug @ linux-6.6.58-rt45/kernel/rcu/tree_stall.h:664 @ static void print_other_cpu_stall(unsign panic_on_rcu_stall(); rcu_force_quiescent_state(); /* Kick them all. */ + + nbcon_cpu_emergency_exit(); } static void print_cpu_stall(unsigned long gps)