mbox series

[v2,0/2] Avoid spurious ptimer interrupts for non-zero cntpoff

Message ID 20230904114218.590304-1-gankulkarni@os.amperecomputing.com (mailing list archive)
Headers show
Series Avoid spurious ptimer interrupts for non-zero cntpoff | expand

Message

Ganapatrao Kulkarni Sept. 4, 2023, 11:42 a.m. UTC
Guest-Hypervisor(NV use-case) uses ptimer as an arch_timer.
While running Guest-Hypervisor from a VHE host on a platform which
supports FEAT_ECV/CNTPOFF_EL2, burst of spurious ptimer interrupts
were generated for a non-zero offset, causing the boot to hang.

The issue is due to the value of CNTPOFF_EL2 is treated as zero while
on VHE host. This patch fixes the issue by adjusting the CVAL of a
loaded ptimer across the entry and exit of a guest.

v2:
     Updated as per review comment [1].
[1] https://lore.kernel.org/lkml/a4dac5af-44e2-0485-446f-fae09fa66a3c@os.amperecomputing.com/


This patchset is rebased on NV-V10[2][3].

[2] https://lore.kernel.org/linux-arm-kernel/19c775ad-9573-b4d4-886d-c631b468856f@redhat.com/T/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/log/?h=kvm-arm64/nv-6.5-WIP-6.4

Ganapatrao Kulkarni (2):
  KVM: arm64: timers: Move helper has_cntpoff to a header file
  KVM: arm64: timers: Adjust CVAL of a ptimer across guest entry and
    exits

 arch/arm64/include/asm/virt.h   |  5 +++
 arch/arm64/kvm/arch_timer.c     | 65 ++++++++++++++++++++++++++++-----
 arch/arm64/kvm/hyp/vhe/switch.c | 13 +++++++
 include/kvm/arm_arch_timer.h    |  1 +
 4 files changed, 74 insertions(+), 10 deletions(-)