2022-09-09 07:38:37

by Kunkun Jiang

[permalink] [raw]
Subject: A question about Cortex-A73 erratum 858921

Hi all,

Recently I am learning the code related to Arm arch timer. I found that the
Cortex-A73 erratum 858921 does not set the corresponding callback functions:
set_next_event_phys and set_next_event_virt like other erratums. Won't it
get the wrong value when reading the counter during setting next event?

Looking forward to your reply.

Thanks,
Kunkun Jiang


2022-09-09 12:33:10

by Marc Zyngier

[permalink] [raw]
Subject: Re: A question about Cortex-A73 erratum 858921

On Fri, 09 Sep 2022 08:31:43 +0100,
Kunkun Jiang <[email protected]> wrote:
>
> Hi all,
>
> Recently I am learning the code related to Arm arch timer. I found that the
> Cortex-A73 erratum 858921 does not set the corresponding callback functions:
> set_next_event_phys and set_next_event_virt like other erratums. Won't it
> get the wrong value when reading the counter during setting next event?

Yup, you're correct.

This is a regression introduced by a38b71b0833e
("clocksource/drivers/arm_arch_timer: Move system register timer
programming over to CVAL"). We used to use the TVAL accessor which
doesn't need a read of the counter, while the switch to CVAL needs
one. Obviously, I didn't enough pay attention to the A73 erratum.

Please send in a fix for this.

Thanks,

M.

--
Without deviation from the norm, progress is not possible.

2022-09-13 11:49:54

by Kunkun Jiang

[permalink] [raw]
Subject: Re: A question about Cortex-A73 erratum 858921

Hi Marc,

Thank you for your reply, I've sent a fix.
https://lore.kernel.org/all/[email protected]/

Thanks,
Kunkun Jiang

On 2022/9/9 20:23, Marc Zyngier wrote:
> On Fri, 09 Sep 2022 08:31:43 +0100,
> Kunkun Jiang <[email protected]> wrote:
>> Hi all,
>>
>> Recently I am learning the code related to Arm arch timer. I found that the
>> Cortex-A73 erratum 858921 does not set the corresponding callback functions:
>> set_next_event_phys and set_next_event_virt like other erratums. Won't it
>> get the wrong value when reading the counter during setting next event?
> Yup, you're correct.
>
> This is a regression introduced by a38b71b0833e
> ("clocksource/drivers/arm_arch_timer: Move system register timer
> programming over to CVAL"). We used to use the TVAL accessor which
> doesn't need a read of the counter, while the switch to CVAL needs
> one. Obviously, I didn't enough pay attention to the A73 erratum.
>
> Please send in a fix for this.
>
> Thanks,
>
> M.
>