]> www.infradead.org Git - users/willy/pagecache.git/commit
tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
authorOleg Nesterov <oleg@redhat.com>
Tue, 28 May 2024 12:20:19 +0000 (14:20 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 10 Jun 2024 18:18:13 +0000 (20:18 +0200)
commit07c54cc5988f19c9642fd463c2dbdac7fc52f777
tree90443b39e87f09ffa37ced76146bdfb95a0e1809
parent83a7eefedc9b56fe7bfeff13b6c7356688ffa670
tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()

After the recent commit 5097cbcb38e6 ("sched/isolation: Prevent boot crash
when the boot CPU is nohz_full") the kernel no longer crashes, but there is
another problem.

In this case tick_setup_device() calls tick_take_do_timer_from_boot() to
update tick_do_timer_cpu and this triggers the WARN_ON_ONCE(irqs_disabled)
in smp_call_function_single().

Kill tick_take_do_timer_from_boot() and just use WRITE_ONCE(), the new
comment explains why this is safe (thanks Thomas!).

Fixes: 08ae95f4fd3b ("nohz_full: Allow the boot CPU to be nohz_full")
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240528122019.GA28794@redhat.com
Link: https://lore.kernel.org/all/20240522151742.GA10400@redhat.com
kernel/time/tick-common.c