]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: arm64: Document ordering requirements for irqbypass
authorOliver Upton <oliver.upton@linux.dev>
Wed, 26 Feb 2025 18:31:24 +0000 (10:31 -0800)
committerOliver Upton <oliver.upton@linux.dev>
Wed, 26 Feb 2025 21:22:49 +0000 (13:22 -0800)
One of the not-so-obvious requirements for restoring a VM is ensuring
that the vITS has been restored _before_ creating any irqbypass mappings.
This is because KVM needs to get the guest translation for MSIs to
correctly assemble the vLPI mapping getting installed in the physical
ITS.

Document the restore ordering requirements necessary for GICv4 vLPI
injection to work.

Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20250226183124.82094-5-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Documentation/virt/kvm/devices/arm-vgic-its.rst

index e053124f77c48a7b9757c0d27fa9b02717cc8b33..0f971f83205a944ce3321388e45c2527ac933e45 100644 (file)
@@ -126,7 +126,8 @@ KVM_DEV_ARM_VGIC_GRP_ITS_REGS
 ITS Restore Sequence:
 ---------------------
 
-The following ordering must be followed when restoring the GIC and the ITS:
+The following ordering must be followed when restoring the GIC, ITS, and
+KVM_IRQFD assignments:
 
 a) restore all guest memory and create vcpus
 b) restore all redistributors
@@ -139,6 +140,8 @@ d) restore the ITS in the following order:
      3. Load the ITS table data (KVM_DEV_ARM_ITS_RESTORE_TABLES)
      4. Restore GITS_CTLR
 
+e) restore KVM_IRQFD assignments for MSIs
+
 Then vcpus can be started.
 
 ITS Table ABI REV0: