x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Subsystems (3)
v6 cover x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
From: Tianyu Lan <[email protected]>
From: Tianyu Lan <[email protected]>
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.
This patchset is based on the AMD patchset "AMD: Add Secure AVIC Guest Support"
https://lkml.org/lkml/2025/6/10/1579
Change since v5:
- Rmove extra line and move hv_enable_coco_interrupt() just after hv_set_msr() in the hv_synic_disable_regs().
Change since v4:
- Change the order to call hv_enable_coco_interrupt() in the hv_synic_enable/disable_regs().
- Update commit title "Drivers/hv:" to "Drivers: hv:"
Change since v3:
- Disable VMBus Message interrupt via hv_enable_ coco_interrupt() in the hv_synic_disable_regs().
- Fix coding style issue and update change log.
Change since v2:
- Add hv_enable_coco_interrupt() as wrapper of apic_update_vector()
- Re-work change logs
Change since v1:
- Remove the check of Secure AVIC when set APIC backing page
- Use apic_update_vector() instead of exposing new interface from Secure AVIC driver to update APIC backing page and allow associated interrupt to be injected by hypervisor.
Tianyu Lan (4):
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
arch/x86/hyperv/hv_apic.c | 9 +++++++++ arch/x86/hyperv/hv_init.c | 7 +++++++ arch/x86/kernel/cpu/mshyperv.c | 2 ++ drivers/hv/hv.c | 7 ++++++- drivers/hv/hv_common.c | 5 +++++ include/asm-generic/mshyperv.h | 1 + 6 files changed, 30 insertions(+), 1 deletion(-)
Signature · 1 line
2.25.1