[PATCH v2 0/2] rwonce: Introduce {READ,WRITE}_ONCE_THIS_CPU()
From: Kunwu Chan
Date: Fri Oct 02 2026 - 11:20:15 EST
This is a rework of [1] following the discussion with Thomas and Paul.
v1 marked the got_idle_tick accesses with plain READ_ONCE()/WRITE_ONCE().
However, the plain variants do not distinguish an intentional race
between execution contexts on the same CPU from an access that may race
across CPUs. This distinction allows concurrency tools such as KCSAN
to tell these cases apart, so that stricter task-vs-interrupt race
checking can be enabled without false positives on intentional
same-CPU races.
The first patch introduces READ_ONCE_THIS_CPU() and
WRITE_ONCE_THIS_CPU() for this purpose, currently as simple wrappers
around the plain variants. The second patch converts got_idle_tick
to use them.
Changes since v1 [1]:
- Introduce {READ,WRITE}_ONCE_THIS_CPU() instead of reusing the
plain variants. (Thomas Gleixner)
- Expand the commit messages to state the KCSAN rationale. (Thomas
Gleixner)
[1] https://lore.kernel.org/all/20260920085434.2918331-1-kunwu.chan@xxxxxxxxx/
Kunwu Chan (2):
rwonce: Add READ_ONCE_THIS_CPU() and WRITE_ONCE_THIS_CPU()
timers/nohz: Mark got_idle_tick accesses as same-CPU races
include/asm-generic/rwonce.h | 11 +++++++++++
kernel/time/tick-sched.c | 6 +++---
2 files changed, 14 insertions(+), 3 deletions(-)
--
2.43.0