[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