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

From: Ganapatrao Kulkarni
Date: Thu Aug 17 2023 - 02:07:42 EST


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@xxxxxxxxxx/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