linux/kernel/rcu
Cheng-Yang Chou 252891d03d sched_ext, rcu: Upgrade RCU stall paths to report cpumask of stalled CPUs
scx_rcu_cpu_stall() previously recorded the detector CPU rather than the
stalled one, and the expedited grace period path had no stalled CPU to
report at all.

Thread a cpumask through panic_on_rcu_stall() and scx_rcu_cpu_stall()
to capture all stalled CPUs. Report cpumask_first() as exit_cpu and the
full CPU list in the exit message. Task-only stalls yield exit_cpu = -1.

Store the stall mask in scx_sched rather than scx_exit_info, keeping the
BPF-visible struct unchanged. scx_dump_state() reads sch->stall_cpus
directly and dumps all stalled CPUs first to avoid losing them to
truncation.

Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-06-24 12:48:32 -10:00
..
Kconfig rcu: Add noinstr-fast rcu_read_{,un}lock_tasks_trace() APIs 2026-01-01 16:39:46 +08:00
Kconfig.debug RCU changes for v7.1 2026-04-13 09:36:45 -07:00
Makefile rcuperf: Change rcuperf to rcuscale 2020-08-24 18:39:24 -07:00
rcu_segcblist.c rcu/nocb: Simplify (de-)offloading state machine 2024-09-09 00:03:55 +05:30
rcu_segcblist.h rcu: Remove unused declaration rcu_segcblist_offload() 2024-10-22 15:36:56 +02:00
rcu.h rcutorture: Add a textbook-style trivial preemptible RCU 2026-03-30 15:48:13 -04:00
rcuscale.c rcuscale: Ditch rcu_scale_shutdown in favor of torture_shutdown_init() 2026-03-30 15:48:13 -04:00
rcutorture.c rcutorture: Fully test lazy RCU 2026-05-24 09:38:39 +02:00
refscale.c refscale: Ditch ref_scale_shutdown in favor of torture_shutdown_init() 2026-03-30 15:48:13 -04:00
srcutiny.c srcu: Use irq_work to start GP in tiny SRCU 2026-03-25 09:00:05 -07:00
srcutree.c srcu: Don't queue workqueue handlers to never-online CPUs 2026-05-18 12:27:18 -07:00
sync.c rcu: Eliminate lockless accesses to rcu_sync->gp_count 2024-07-04 13:48:57 -07:00
tasks.h rcu-tasks: Fix possible boot-time tests failed for the call_rcu_tasks() 2026-05-24 09:40:13 +02:00
tiny.c sched: Provide and use set_need_resched_current() 2025-11-20 22:26:09 +01:00
tree_exp.h sched_ext, rcu: Upgrade RCU stall paths to report cpumask of stalled CPUs 2026-06-24 12:48:32 -10:00
tree_nocb.h rcu/nocb: reduce stack usage in nocb_gp_wait() 2026-06-02 19:43:53 +02:00
tree_plugin.h rcu: Fix rcu_read_unlock() deadloop due to softirq 2026-01-07 21:58:37 +08:00
tree_stall.h sched_ext, rcu: Upgrade RCU stall paths to report cpumask of stalled CPUs 2026-06-24 12:48:32 -10:00
tree.c sched_ext, rcu: Upgrade RCU stall paths to report cpumask of stalled CPUs 2026-06-24 12:48:32 -10:00
tree.h Merge branch 'rcu-nocb.20260123a' 2026-01-23 11:15:36 -08:00
update.c rcutorture: Add a textbook-style trivial preemptible RCU 2026-03-30 15:48:13 -04:00