[PATCH 0/3] arm64: WFxT fixes, take #2
André Draszik
andre.draszik at linaro.org
Thu Feb 26 04:53:31 PST 2026
Hi,
On Thu, 2026-02-26 at 08:22 +0000, Marc Zyngier wrote:
> After my previous WFxT fix went in 7.0-rc1 as 29cc0f3aa7c64 ("arm64:
> Force the use of CNTVCT_EL0 in __delay()"), Ben reported that it isn't
> playing nice with preemption, due to the use of the timer workaround
> percpu variable. This series tries to address this, and propose a
> hopefully better alternative.
>
> That alternative is in the form of a new "virtual counter" accessor,
> available in the same way arch_timer_read_counter() is, except that it
> is guaranteed to be the virtual counter. This helper (a function
> pointer, really) is updated on each CPU boot in the same manner the
> counter accessor is.
>
> This is then plugged into the __delay() helper, providing the expected
> guarantees (and resulting in a much nicer code gen).
>
> Patches on top of -rc1.
>
> Marc Zyngier (3):
> arm64: Fix sampling the "stable" virtual counter in preemptible
> section
> clocksource/drivers/arm_arch_timer: Expose a direct accessor for the
> virtual counter
> arm64: Convert __delay_cycles() to arch_timer_read_vcounter()
>
> arch/arm64/lib/delay.c | 5 ++++-
> drivers/clocksource/arm_arch_timer.c | 5 +++++
> include/clocksource/arm_arch_timer.h | 1 +
> 3 files changed, 10 insertions(+), 1 deletion(-)
FWIW, I was observing similar traces from various drivers and can confirm that
for me, on Pixel 6, the warnings are gone again with these patches applied on
top of next-20260225
Tested-by: André Draszik <andre.draszik at linaro.org>
More information about the linux-arm-kernel
mailing list