KVM: arm64: nv: timers: Add a per-timer, per-vcpu offset
authorMarc Zyngier <maz@kernel.org>
Thu, 30 Mar 2023 17:47:56 +0000 (18:47 +0100)
committerMarc Zyngier <maz@kernel.org>
Thu, 30 Mar 2023 18:01:10 +0000 (19:01 +0100)
commit1e0eec09d43a55125ff80e40b2d6e2f369a338b9
tree2a359e5a80f73aec8a9fad6d30f7851fc5ade982
parent1935d34afaebe01ddb75bfaa62fb7fe957ddc210
KVM: arm64: nv: timers: Add a per-timer, per-vcpu offset

Being able to set a global offset isn't enough.

With NV, we also need to a per-vcpu, per-timer offset (for example,
CNTVCT_EL0 being offset by CNTVOFF_EL2).

Use a similar method as the VM-wide offset to have a timer point
to the shadow register that contains the offset value.

Reviewed-by: Colton Lewis <coltonlewis@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230330174800.2677007-17-maz@kernel.org
arch/arm64/kvm/arch_timer.c
arch/arm64/kvm/hyp/include/hyp/switch.h
include/kvm/arm_arch_timer.h