In some extreme cases, such as the I/O pressure test, the CPU usage may
be 100%, causing RCU stall. In this case, the printed information about
current is not useful. Displays the number and usage of hard interrupts,
soft interrupts, and context switches that are generated within half of
the CPU stall timeout, can help us make a general judgment. In other
cases, we can preliminarily determine whether an infinite loop occurs
when local_irq, local_bh or preempt is disabled.
Neeraj Upadhyay (1):
rcu: Check and report missed fqs timer wakeup on RCU stall
Paul E. McKenney (3):
rcu: Prevent lockdep-RCU splats on lock acquisition/release
rcu: For RCU grace-period kthread starvation, dump last CPU it ran on
rcu: Do not NMI offline CPUs
Zhen Lei (6):
sched/debug: Try trigger_single_cpu_backtrace(cpu) in dump_cpu_task()
sched/debug: Show the registers of 'current' in dump_cpu_task()
sched: Add helper kstat_cpu_softirqs_sum()
sched: Add helper nr_context_switches_cpu()
rcu: Add RCU stall diagnosis information
rcu: Align the output of RCU CPU stall warning messages
Documentation/RCU/stallwarn.rst | 23 ++++-
.../admin-guide/kernel-parameters.txt | 6 ++
include/linux/kernel_stat.h | 12 +++
kernel/rcu/Kconfig.debug | 13 +++
kernel/rcu/rcu.h | 1 +
kernel/rcu/tree.c | 64 +++++++++++---
kernel/rcu/tree.h | 20 +++++
kernel/rcu/tree_stall.h | 86 +++++++++++++++++--
kernel/rcu/update.c | 2 +
kernel/sched/core.c | 19 ++++
kernel/smp.c | 3 +-
11 files changed, 230 insertions(+), 19 deletions(-)
--
2.34.1