v2 --> v3: 1. Patch 1 Add trigger_single_cpu_backtrace(cpu) in synchronize_rcu_expedited_wait() Subsequently, we can see that all callers of dump_cpu_task() try trigger_single_cpu_backtrace() first. Then I do the cleanup in Patch 2. 2. Patch 3, as Paul E. McKenney's suggestion, push the code into dump_cpu_task(). For newcomers: Currently, dump_cpu_task() is mainly used by RCU, in order to dump the stack traces of the current task of the specified CPU when a rcu stall is detected. For architectures that do not support NMI interrupts, registers is not printed when rcu stall is self-detected. This patch series improve it. v2: https://lkml.org/lkml/2022/7/27/1800 Zhen Lei (3): rcu/exp: Use NMI to get the backtrace of cpu_curr(other_cpu) first sched/debug: Try trigger_single_cpu_backtrace(cpu) in dump_cpu_task() sched/debug: Show the registers of 'current' in dump_cpu_task() kernel/rcu/tree_stall.h | 8 +++----- kernel/sched/core.c | 14 ++++++++++++++ kernel/smp.c | 3 +-- 3 files changed, 18 insertions(+), 7 deletions(-) -- 2.25.1