summaryrefslogtreecommitdiff
path: root/include/asm-generic/hardirq.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2024-04-09 13:29:12 +0300
committerIngo Molnar <mingo@kernel.org>2024-04-10 11:13:42 +0300
commitf87cbcb345d059f0377b4fa0ba1b766a17fc3710 (patch)
tree5593baf8c37a2d77828e4f26c237eb2127009a7e /include/asm-generic/hardirq.h
parent6d029c25b71f2de2838a6f093ce0fa0e69336154 (diff)
downloadlinux-f87cbcb345d059f0377b4fa0ba1b766a17fc3710.tar.xz
timekeeping: Use READ/WRITE_ONCE() for tick_do_timer_cpu
tick_do_timer_cpu is used lockless to check which CPU needs to take care of the per tick timekeeping duty. This is done to avoid a thundering herd problem on jiffies_lock. The read and writes are not annotated so KCSAN complains about data races: BUG: KCSAN: data-race in tick_nohz_idle_stop_tick / tick_nohz_next_event write to 0xffffffff8a2bda30 of 4 bytes by task 0 on cpu 26: tick_nohz_idle_stop_tick+0x3b1/0x4a0 do_idle+0x1e3/0x250 read to 0xffffffff8a2bda30 of 4 bytes by task 0 on cpu 16: tick_nohz_next_event+0xe7/0x1e0 tick_nohz_get_sleep_length+0xa7/0xe0 menu_select+0x82/0xb90 cpuidle_select+0x44/0x60 do_idle+0x1c2/0x250 value changed: 0x0000001a -> 0xffffffff Annotate them with READ/WRITE_ONCE() to document the intentional data race. Reported-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Tested-by: Sean Anderson <sean.anderson@seco.com> Link: https://lore.kernel.org/r/87cyqy7rt3.ffs@tglx
Diffstat (limited to 'include/asm-generic/hardirq.h')
0 files changed, 0 insertions, 0 deletions