[PATCH 0/6] KVM/x86: Add workaround to support ExtINT with AVIC

From: Suthikulpanit, Suravee
Date: Fri Mar 22 2019 - 08:48:43 EST


This series is one of the prerequisites for supporting AMD AVIC with
in-kernel irqchip (kernel_irqchip=on).

Since AVIC does not support ExtINT interrupt, which is required during
the booting phase of Windows and FreeBSD VMs (e.g. PIT -> PIC -> ExtInt).
This results in VM hang in the boot loader with kernel_irqchip=on mode.

This series provides workaround by temporary deactivate AVIC and fallback
to use legacy interrupt injection (w/ vINTR and interrupt window).
Then re-activate AVIC once the intrrupts are handled.

Thanks,
Suravee

Suravee Suthikulpanit (6):
KVM: x86: Add callback functions for handling APIC ID, DFR and LDR
update
svm: Add AMD AVIC handlers for APIC ID, DFR and LDR update
svm: Add support for APIC_ACCESS_PAGE_PRIVATE_MEMSLOT setup/destroy
kvm: lapic: Add apicv activate/deactivate helper function
KVM: x86: Add interface for run-time activate/de-activate APIC
virtualization
svm: Temporary deactivate AVIC during ExtINT handling

arch/x86/include/asm/kvm_host.h | 11 ++++
arch/x86/kvm/lapic.c | 29 +++++++--
arch/x86/kvm/lapic.h | 1 +
arch/x86/kvm/svm.c | 106 ++++++++++++++++++++++++++++++--
arch/x86/kvm/x86.c | 48 +++++++++++++++
5 files changed, 185 insertions(+), 10 deletions(-)

--
2.17.1