[PATCH v2 0/2] KVM: x86: Document APIC base memory hole constraint
From: Tim Wiederhake
Date: Wed Jul 08 2026 - 09:40:03 EST
When virtual APIC access acceleration is enabled on x86 (APICv on
Intel, AVIC on AMD), vcpu creation installs a private memory slot at
the default APIC base address (0xfee00000). If user space maps a
memory region covering that address, vcpu creation fails with -EEXIST.
This is not documented and very puzzling when it happens.
This series documents two undocumented constraints:
1/2 KVM_CREATE_IRQCHIP must precede vcpu creation
2/2 APIC base address memory hole when APIC acceleration is enabled
Thanks to Sean Christopherson for the thorough review of v1.
Changes since v1:
- Dropped enforcement patches (3/4, 4/4) per review feedback.
- Patch 1/2: Reworded to avoid implying that KVM_CREATE_IRQCHIP is
mandatory.
- Patch 2/2: Reworded to reflect that the APIC access page is not
installed in every case. Added note about KVM_CAP_SPLIT_IRQCHIP
having the same constraint.
v1: https://lore.kernel.org/kvm/20260706092021.3625908-2-twiederh@xxxxxxxxxx/
Tim Wiederhake (2):
KVM: x86: Document that KVM_CREATE_IRQCHIP must precede vcpu creation
KVM: x86: Document APIC base address constraint for in-kernel irqchip
Documentation/virt/kvm/api.rst | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
--
2.52.0