Secure AVIC is a new hardware feature in the AMD64 architecture to allow SEV-SNP guests to prevent the hypervisor from generating unexpected interrupts to a vCPU or otherwise violate architectural assumptions around APIC behavior.
Each vCPU has a guest-allocated APIC backing page of size 4K, which maintains APIC state for that vCPU. APIC backing page's ALLOWED_IRR field indicates the interrupt vectors which the guest allows the hypervisor to send. This patchset is to enable the feature for Hyper-V platform. Patch "Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V" is to expose new fucntion hv_enable_coco_interrupt() and device driver and arch code may update AVIC backing page ALLOWED_IRR field to allow Hyper-V inject associated vector. The patchset is based on the tip tree commit 27a17e02418e (x86/sev: Indicate the SEV-SNP guest supports Secure AVIC) Tianyu Lan (5): x86/hyperv: Don't use hv apic driver when Secure AVIC is available drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V x86/hyperv: Don't use auto-eoi when Secure AVIC is available x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts x86/Hyper-V: Add Hyper-V specific hvcall to set backing page arch/x86/hyperv/hv_apic.c | 8 ++++++ arch/x86/hyperv/hv_init.c | 31 ++++++++++++++++++++++- arch/x86/hyperv/ivm.c | 38 ++++++++++++++++++++++++++++ arch/x86/include/asm/mshyperv.h | 2 ++ arch/x86/kernel/apic/x2apic_savic.c | 9 ++++++- arch/x86/kernel/cpu/mshyperv.c | 3 +++ drivers/hv/hv.c | 2 ++ drivers/hv/hv_common.c | 5 ++++ include/asm-generic/mshyperv.h | 1 + include/hyperv/hvgdk_mini.h | 39 +++++++++++++++++++++++++++++ 10 files changed, 136 insertions(+), 2 deletions(-) -- 2.25.1