SNP: Secure AVIC support#1172
Conversation
c2a6131 to
29dc5e4
Compare
da9191e to
082bdc5
Compare
86af935 to
3687496
Compare
aabca2d to
074cb5d
Compare
| "enable_debug": true, | ||
| "injection_type": "normal" | ||
| "injection_type": "normal", | ||
| "secure_avic": "enabled" |
There was a problem hiding this comment.
revert to "disabled"
a17bbe0 to
4ead4cf
Compare
91e198d to
3ab9286
Compare
5ab32f2 to
3472a20
Compare
ab868e9 to
925a258
Compare
a4010a8 to
f0d8c97
Compare
eb422e9 to
accd50e
Compare
97a3e29 to
8f521a1
Compare
e21d18b to
ce710cc
Compare
|
Hi! 👋 We're doing some spring cleaning on open PRs. This PR hasn't seen any activity in a while — is it still something you're working on or planning to pick back up? No worries either way! If it's no longer needed, we'll go ahead and close it out. Just let us know. Thanks! |
|
@romank-msft please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
Enable secure AVIC support to offload interrupt state computation to the hardware to be fast and secure.
In AMD's own words:
"The Secure AVIC feature provides support for managing guest-owned APIC state for SEV-SNP guests using a private, guest-owned backing page per vCPU."
-- SEV-ES GHCB Standartizarion
"In a virtualized computer system, each guest operating system needs access to an interrupt controller to send and receive device and interprocessor interrupts. When there is no hardware acceleration, it falls to the virtual machine monitor (VMM) to intercept guest-initiated attempts to access the interrupt controller registers and provide direct emulation of the controller system programming interface allowing the guest to initiate and process interrupts. The VMM uses the underlying physical and virtual interrupt delivery mechanisms of the system to deliver interrupts from I/O devices and virtual processors to the target guest virtual processor and to handle any required end of interrupt processing.
Given the high rate of device and interprocessor interrupt generation in certain scenarios, in particular on server-class systems, the emulation of a local APIC can be a significant burden for the VMM. The AVIC architecture addresses the overhead of guest interrupt processing in a virtualized environment by applying hardware acceleration to the following components of interrupt processing:
-- AMD64 PPR Vol. 3
Laundry list:
MpState::Idleand kernel idle and halt state offloading for better performance0due to next RIP not filled out)OHCL-Linux-Kernel draft: microsoft/OHCL-Linux-Kernel#67
The change boots multi-proc Linux guests and multi-proc Windows guests.
Sometimes the serial console hangs on MP Linux.