[PATCH v2] KVM: arm64: Don't livelock when AT can't resolve a fault IPA
Marc Zyngier
maz at kernel.org
Tue Nov 3 05:05:27 PST 2026
On Tue, 03 Nov 2026 12:44:12 +0100, Ard Biesheuvel wrote:
> When a stage-2 permission fault doesn't report its IPA in HPFAR_EL2,
> __get_fault_info() recovers it with an AT S1E1R/S1E1A on FAR_EL2. If that
> fails, kvm_hyp_handle_memory_fault() goes straight back to the guest, on
> the assumption that the replayed access will either succeed or take a
> fault that the slow path can handle.
>
> That assumption doesn't hold when the AT fails because its stage-1 walk
> takes a stage-2 fault on one of the guest's page-table pages, while the
> guest still holds a cached translation for the faulting VA. The guest
> doesn't walk its page tables, so it never takes the S1PTW fault that
> would let the slow path fix things up. It takes the same permission fault
> again, the AT fails again, and the vCPU livelocks in the world switch.
>
> [...]
Applied to fixes, thanks!
[1/1] KVM: arm64: Don't livelock when AT can't resolve a fault IPA
commit: 36b225a9b1c41a71d80e2cc17b3f0fcde4bd598e
Cheers,
M.
--
Without deviation from the norm, progress is not possible.
More information about the linux-arm-kernel
mailing list