Hi Marc,
On Fri, Jan 13, 2023 at 11:16:48AM +0000, Marc Zyngier wrote:
When booting on a CPU that has a countertum on the counter read, we use the arch_counter_get_cnt{v,p}ct_stable() backend which applies the workaround.
However, we don't do the same thing when an affected CPU is a secondary CPU, and we're stuck with the standard sched_clock() backend that knows nothing about the workaround.
Fix it by always indirecting sched_clock(), making arch_timer_read_counter a function instead of a function pointer. In turn, we update the pointer (now private to the driver code) when detecting a new workaround.
Cc: Mark Rutland mark.rutland@arm.com Cc: Will Deacon will@kernel.org Cc: Daniel Lezcano daniel.lezcano@kernel.org Cc: Thomas Gleixner tglx@linotronix.de Cc: stable@vger.kernel.org Reported-by: Yogesh Lal quic_ylal@quicinc.com Signed-off-by: Marc Zyngier maz@kernel.org Fixes: 0ea415390cd3 ("clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters") Link: https://lore.kernel.org/r/ca4679a0-7f29-65f4-54b9-c575248192f1@quicinc.com
drivers/clocksource/arm_arch_timer.c | 56 +++++++++++++++++----------- include/clocksource/arm_arch_timer.h | 2 +- 2 files changed, 36 insertions(+), 22 deletions(-)
I'm just going through the patch backlog and I think this thread ended with Mark's review. Do you intend to post an updated version?
Cheers,
Will