[PATCH 0/2] KVM: x86: hyper-v: Conditionally allow SynIC with APICv/AVIC

From: Vitaly Kuznetsov
Date: Thu May 13 2021 - 07:37:25 EST


APICV_INHIBIT_REASON_HYPERV is currently unconditionally forced upon
SynIC activation as SynIC's AutoEOI is incompatible with APICv/AVIC. It is,
however, possible to track whether the feature was actually used by the
guest and only inhibit APICv/AVIC when needed.

The feature can be tested with QEMU's 'hv-passthrough' debug mode.

Note, 'avic' kvm-amd module parameter is '0' by default and thus needs to
be explicitly enabled.

Vitaly Kuznetsov (2):
KVM: x86: Invert APICv/AVIC enablement check
KVM: x86: hyper-v: Deactivate APICv only when AutoEOI feature is in
use

arch/x86/include/asm/kvm_host.h | 5 ++++-
arch/x86/kvm/hyperv.c | 27 +++++++++++++++++++++------
arch/x86/kvm/svm/svm.c | 7 ++++++-
arch/x86/kvm/vmx/vmx.c | 7 ++++++-
arch/x86/kvm/x86.c | 6 +++---
5 files changed, 40 insertions(+), 12 deletions(-)

--
2.31.1