[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