diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches-rt/0028-rcu-Mark-emergency-sections-in-rcu-stalls.patch (renamed from debian/patches-rt/0031-rcu-Mark-emergency-sections-in-rcu-stalls.patch) | 54 |
1 files changed, 43 insertions, 11 deletions
diff --git a/debian/patches-rt/0031-rcu-Mark-emergency-sections-in-rcu-stalls.patch b/debian/patches-rt/0028-rcu-Mark-emergency-sections-in-rcu-stalls.patch index 0cca134a21..7a13ac0042 100644 --- a/debian/patches-rt/0031-rcu-Mark-emergency-sections-in-rcu-stalls.patch +++ b/debian/patches-rt/0028-rcu-Mark-emergency-sections-in-rcu-stalls.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Mon, 11 Sep 2023 15:53:39 +0000 -Subject: [PATCH 31/48] rcu: Mark emergency sections in rcu stalls -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patches-6.8.2-rt11.tar.xz +Subject: [PATCH 28/46] rcu: Mark emergency sections in rcu stalls +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.9/older/patches-6.9-rt5.tar.xz Mark emergency sections wherever multiple lines of rcu stall information are generated. In an emergency @@ -14,9 +14,9 @@ quickly as possible in the ringbuffer. Signed-off-by: John Ogness <john.ogness@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - kernel/rcu/tree_exp.h | 7 +++++++ - kernel/rcu/tree_stall.h | 9 +++++++++ - 2 files changed, 16 insertions(+) + kernel/rcu/tree_exp.h | 9 +++++++++ + kernel/rcu/tree_stall.h | 11 +++++++++++ + 2 files changed, 20 insertions(+) --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #include <linux/lockdep.h> static void rcu_exp_handler(void *unused); -@@ -636,6 +637,9 @@ static void synchronize_rcu_expedited_wa +@@ -571,6 +572,9 @@ static void synchronize_rcu_expedited_wa return; if (rcu_stall_is_suppressed()) continue; @@ -38,7 +38,15 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> j = jiffies; rcu_stall_notifier_call_chain(RCU_STALL_NOTIFY_EXP, (void *)(j - jiffies_start)); trace_rcu_stall_warning(rcu_state.name, TPS("ExpeditedStall")); -@@ -689,6 +693,9 @@ static void synchronize_rcu_expedited_wa +@@ -612,6 +616,7 @@ static void synchronize_rcu_expedited_wa + } + pr_cont("\n"); + } ++ nbcon_cpu_emergency_flush(); + rcu_for_each_leaf_node(rnp) { + for_each_leaf_node_possible_cpu(rnp, cpu) { + mask = leaf_node_cpu_bit(rnp, cpu); +@@ -624,6 +629,9 @@ static void synchronize_rcu_expedited_wa rcu_exp_print_detail_task_stall_rnp(rnp); } jiffies_stall = 3 * rcu_exp_jiffies_till_stall_check() + 3; @@ -48,6 +56,14 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> panic_on_rcu_stall(); } } +@@ -792,6 +800,7 @@ static void rcu_exp_print_detail_task_st + */ + touch_nmi_watchdog(); + sched_show_task(t); ++ nbcon_cpu_emergency_flush(); + } + raw_spin_unlock_irqrestore_rcu_node(rnp, flags); + } --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -7,6 +7,7 @@ @@ -58,7 +74,23 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #include <linux/kvm_para.h> #include <linux/rcu_notifier.h> -@@ -604,6 +605,8 @@ static void print_other_cpu_stall(unsign +@@ -260,6 +261,7 @@ static void rcu_print_detail_task_stall_ + */ + touch_nmi_watchdog(); + sched_show_task(t); ++ nbcon_cpu_emergency_flush(); + } + raw_spin_unlock_irqrestore_rcu_node(rnp, flags); + } +@@ -522,6 +524,7 @@ static void print_cpu_stall_info(int cpu + falsepositive ? " (false positive?)" : ""); + + print_cpu_stat_info(cpu); ++ nbcon_cpu_emergency_flush(); + } + + /* Complain about starvation of grace-period kthread. */ +@@ -604,6 +607,8 @@ static void print_other_cpu_stall(unsign if (rcu_stall_is_suppressed()) return; @@ -67,7 +99,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * OK, time to rat on our buddy... * See Documentation/RCU/stallwarn.rst for info on how to debug -@@ -655,6 +658,8 @@ static void print_other_cpu_stall(unsign +@@ -655,6 +660,8 @@ static void print_other_cpu_stall(unsign rcu_check_gp_kthread_expired_fqs_timer(); rcu_check_gp_kthread_starvation(); @@ -76,7 +108,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> panic_on_rcu_stall(); rcu_force_quiescent_state(); /* Kick them all. */ -@@ -675,6 +680,8 @@ static void print_cpu_stall(unsigned lon +@@ -675,6 +682,8 @@ static void print_cpu_stall(unsigned lon if (rcu_stall_is_suppressed()) return; @@ -85,7 +117,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * OK, time to rat on ourselves... * See Documentation/RCU/stallwarn.rst for info on how to debug -@@ -703,6 +710,8 @@ static void print_cpu_stall(unsigned lon +@@ -703,6 +712,8 @@ static void print_cpu_stall(unsigned lon jiffies + 3 * rcu_jiffies_till_stall_check() + 3); raw_spin_unlock_irqrestore_rcu_node(rnp, flags); |