Re: [PATCH] KVM: arm64: Use the correct timer for accessing CNT

From: Zenghui Yu
Date: Mon Mar 16 2020 - 08:38:59 EST


Hi Marc,

On 2020/3/16 19:09, Marc Zyngier wrote:
Hi Zenghui,

On 2020-03-16 10:49, Zenghui Yu wrote:
Hi,

On 2020/3/16 17:39, KarimAllah Ahmed wrote:
Use the physical timer object when reading the physical timer counter
instead of using the virtual timer object. This is only visible when
reading it from user-space as kvm_arm_timer_get_reg() is only executed on
the get register patch from user-space.

s/patch/path/

I think the physical counter hasn't yet been accessed by the current
userspace, wrong?

I don't think userspace can access it, as the ONE_REG API only exposes the virtual
timer so far, and userspace is much better off just reading the counter directly
(it has access to the virtual counter, and the guarantee that cntvoff is 0 in this
context).

Yeah, I see. The physical timer registers are all ignored in
walk_one_sys_reg() and won't be exposed.


But as we move towards a situation where we can save/restore the physical timer
just like the virtual one, we're going to use this path and hit this bug.

Thanks for the explanation.


Zenghui