[PATCH v2 0/3] KVM: SVM: Fix guest not booting w/ AVIC enabled

From: Suravee Suthikulpanit
Date: Tue Sep 12 2017 - 11:43:08 EST


Certain QEMU options fails to boot VM guest w/ SVM AVIC enabled
(e.g. modprobe kvm_amd avic=1). Investigation shows that this mainly
due to AVIC hardware does not trap into hypervisor when guest OS
writes to APIC_EOI register.

The boot hang is caused by missing timer interrupt when using in-kernel
PIT model (e.g. launch qemu w/ '-no-hpet' option) since it requires
irq acknowledgmen before injecting another interrupt in case
irq re-injection is enabled (normally default).

Changes from V1 (https://lkml.org/lkml/2017/9/5/826)
* Consolidate irqchip_split() check to only one place (per Radim).

Suravee Suthikulpanit (3):
KVM: SVM: Refactor AVIC vcpu initialization into avic_init_vcpu()
KVM: Add struct kvm_vcpu pointer parameter to get_enable_apicv()
KVM: SVM: Add irqchip_split() checks before enabling AVIC

arch/x86/include/asm/kvm_host.h | 2 +-
arch/x86/kvm/svm.c | 43 ++++++++++++++++++++++++++++-------------
arch/x86/kvm/vmx.c | 2 +-
arch/x86/kvm/x86.c | 2 +-
4 files changed, 33 insertions(+), 16 deletions(-)

--
1.8.3.1