summaryrefslogtreecommitdiff
path: root/Documentation/RCU/stallwarn.rst
diff options
context:
space:
mode:
authorFrederic Weisbecker <frederic@kernel.org>2024-10-10 18:36:09 +0200
committerNeeraj Upadhyay <neeraj.upadhyay@kernel.org>2024-10-10 22:18:19 +0530
commitf7345ccc62a4b880cf76458db5f320725f28e400 (patch)
treee4d1b5064e9b37daab3610de7620fd4a99c6dc2a /Documentation/RCU/stallwarn.rst
parent8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b (diff)
downloadlinux-f7345ccc62a4b880cf76458db5f320725f28e400.tar.gz
linux-f7345ccc62a4b880cf76458db5f320725f28e400.tar.bz2
linux-f7345ccc62a4b880cf76458db5f320725f28e400.zip
rcu/nocb: Fix rcuog wake-up from offline softirq
After a CPU has set itself offline and before it eventually calls rcutree_report_cpu_dead(), there are still opportunities for callbacks to be enqueued, for example from a softirq. When that happens on NOCB, the rcuog wake-up is deferred through an IPI to an online CPU in order not to call into the scheduler and risk arming the RT-bandwidth after hrtimers have been migrated out and disabled. But performing a synchronized IPI from a softirq is buggy as reported in the following scenario: WARNING: CPU: 1 PID: 26 at kernel/smp.c:633 smp_call_function_single Modules linked in: rcutorture torture CPU: 1 UID: 0 PID: 26 Comm: migration/1 Not tainted 6.11.0-rc1-00012-g9139f93209d1 #1 Stopper: multi_cpu_stop+0x0/0x320 <- __stop_cpus+0xd0/0x120 RIP: 0010:smp_call_function_single <IRQ> swake_up_one_online __call_rcu_nocb_wake __call_rcu_common ? rcu_torture_one_read call_timer_fn __run_timers run_timer_softirq handle_softirqs irq_exit_rcu ? tick_handle_periodic sysvec_apic_timer_interrupt </IRQ> Fix this with forcing deferred rcuog wake up through the NOCB timer when the CPU is offline. The actual wake up will happen from rcutree_report_cpu_dead(). Reported-by: kernel test robot <oliver.sang@intel.com> Closes: https://lore.kernel.org/oe-lkp/202409231644.4c55582d-lkp@intel.com Fixes: 9139f93209d1 ("rcu/nocb: Fix RT throttling hrtimer armed from offline CPU") Reviewed-by: "Joel Fernandes (Google)" <joel@joelfernandes.org> Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Signed-off-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
Diffstat (limited to 'Documentation/RCU/stallwarn.rst')
0 files changed, 0 insertions, 0 deletions