[PATCHv4 00/11] SVM: virtual NMI

From: Santosh Shukla
Date: Mon Feb 27 2023 - 04:03:20 EST



v2:
https://lore.kernel.org/all/0f56e139-4c7f-5220-a4a2-99f87f45fd83@xxxxxxx/

v3:
https://lore.kernel.org/all/20230227035400.1498-1-santosh.shukla@xxxxxxx/
- 09/11: Clubbed x86_ops delayed NMI with vNMI changes into one,
for better readability purpose (Sean Suggestion)
- Series includes suggestion and fixes proposed in v2 series.
Refer each patch for change history(v2-->v3).

v4:
- Missed sending 01/11 patch in v3.

Series based on [1] and tested on AMD EPYC-Genoa.


APM: ((Ch-15.21.10 - NMI Virtualization)
https://www.amd.com/en/support/tech-docs/amd64-architecture-programmers-manual-volumes-1-5

Past history and work refer v5-
https://lkml.org/lkml/2022/10/27/261

Thanks,
Santosh
[1] https://github.com/kvm-x86/linux branch kvm-x86/next(62ef199250cd46f)



Maxim Levitsky (2):
KVM: nSVM: Raise event on nested VM exit if L1 doesn't intercept IRQs
KVM: SVM: add wrappers to enable/disable IRET interception

Santosh Shukla (6):
KVM: nSVM: Don't sync vmcb02 V_IRQ back to vmcb12 if KVM (L0) is
intercepting VINTR
KVM: nSVM: Disable intercept of VINTR if saved RFLAG.IF is 0
x86/cpu: Add CPUID feature bit for VNMI
KVM: SVM: Add VNMI bit definition
KVM: x86: add support for delayed virtual NMI injection interface
KVM: nSVM: implement support for nested VNMI

Sean Christopherson (3):
KVM: x86: Raise an event request when processing NMIs if an NMI is
pending
KVM: x86: Tweak the code and comment related to handling concurrent
NMIs
KVM: x86: Save/restore all NMIs when multiple NMIs are pending

arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/kvm-x86-ops.h | 2 +
arch/x86/include/asm/kvm_host.h | 11 ++-
arch/x86/include/asm/svm.h | 9 ++
arch/x86/kvm/svm/nested.c | 94 +++++++++++++++---
arch/x86/kvm/svm/svm.c | 152 +++++++++++++++++++++++------
arch/x86/kvm/svm/svm.h | 28 ++++++
arch/x86/kvm/x86.c | 46 +++++++--
8 files changed, 289 insertions(+), 54 deletions(-)

--
2.25.1