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

Ganapatrao Kulkarni gankulkarni at os.amperecomputing.com
Wed Aug 16 23:03:12 PDT 2023


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.

This patchset is rebased on NV-V10[1][2]

[1] https://lore.kernel.org/linux-arm-kernel/19c775ad-9573-b4d4-886d-c631b468856f@redhat.com/T/
[2] 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     | 37 ++++++++++++++++++++++++++++-----
 arch/arm64/kvm/hyp/vhe/switch.c | 13 ++++++++++++
 include/kvm/arm_arch_timer.h    |  1 +
 4 files changed, 51 insertions(+), 5 deletions(-)

-- 
2.41.0




More information about the linux-arm-kernel mailing list