Introduce support for guest CET feature
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v15 Latest14 patches 14 repliesIn review
- v1413 patches 15 repliesSuperseded
- v13 posting 2/211 patches 12 repliesSuperseded
Earlier versions · 16
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v13 posting 1/2 | 11 patches | 4 replies | Superseded | |
| v12 | 10 patches | 7 replies | Superseded | |
| v11 | 9 patches | 40 replies | Superseded | |
| v10 | 8 patches | 0 replies | Superseded | |
| v9 | 7 patches | 12 replies | Superseded | |
| v8 | 7 patches | 24 replies | Superseded | |
| v7 | 7 patches | 35 replies | Superseded | |
| v6 | 8 patches | 15 replies | Superseded | |
| v5 | 8 patches | 7 replies | Superseded | |
| v4 RFC | 8 patches | 12 replies | Superseded | |
| v3 posting 3/3 | 5 patches | 3 replies | Superseded | |
| v3 posting 2/3 | 5 patches | 0 replies | Superseded | |
| v3 posting 1/3 | 8 patches | 46 replies | Superseded | |
| v2 posting 2/2 | 4 patches | 0 replies | Superseded | |
| v2 posting 1/2 | 7 patches | 20 replies | Superseded | |
| v1 | 4 patches | 3 replies | Superseded |
Changes in v15 from the cover letter
- Changed patches per Paolo's review feedback on v14.
- Added a new patch for GUEST_SSP save/restore in guest SMM case.
- Fixed guest call-trace issue due to CET MSR interception.
- Removed unnecessary guest CET state cleanup in VMCS.
- Rebased patches to 5.11-rc6.
Patches in v15 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/14 | KVM: x86: Report XSS as an MSR to be saved if there are supported featuresarch/ | +6 | 0 replies | |
| 2/14 | KVM: x86: Refresh CPUID on writes to MSR_IA32_XSSarch/ arch/ arch/ | +24 | 0 replies | |
| 3/14 | KVM: x86: Load guest fpu state when accessing MSRs managed by XSAVESarch/ | +18 | 0 replies | |
| 4/14 | KVM: x86: Add #CP support in guest exception dispatcharch/ arch/ arch/ | +3 | 6 replies | |
| 5/14 | KVM: VMX: Introduce CET VMCS fields and flagsarch/ | +8 | 0 replies | |
| 6/14 | KVM: x86: Add fault checks for CR4.CETarch/ arch/ | +9 | 0 replies | |
| 7/14 | KVM: VMX: Emulate reads and writes to CET MSRsarch/ arch/ | +110 | 5 replies | |
| 8/14 | KVM: VMX: Add a synthetic MSR to allow userspace VMM to access GUEST_SSParch/ arch/ | +13 | 0 replies | |
| 9/14 | KVM: x86: Report CET MSRs as to-be-saved if CET is supportedarch/ | +10 | 0 replies | |
| 10/14 | KVM: x86: Enable CET virtualization for VMX and advertise CET to userspacearch/ arch/ arch/ +2 more | +70 | 0 replies | |
| 11/14 | KVM: VMX: Pass through CET MSRs to the guest when supportedarch/ | +33 | 0 replies | |
| 12/14 | KVM: nVMX: Add helper to check the vmcs01 MSR bitmap for MSR pass-througharch/ | +17 | 0 replies | |
| 13/14 | KVM: nVMX: Enable CET support for nested VMXarch/ arch/ arch/ +1 more | +48 | 0 replies | |
| 14/14 | KVM: x86: Save/Restore GUEST_SSP to/from SMRAMarch/ arch/ | +21 | 2 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v15 yet.
Cover letter [PATCH v15 00/14] Introduce support for guest CET feature
Control-flow Enforcement Technology (CET) provides protection against Return/Jump-Oriented Programming (ROP/JOP) attack. There're two CET
subfeatures: Shadow Stack (SHSTK) and Indirect Branch Tracking (IBT). SHSTK is to prevent ROP and IBT is to prevent JOP.
Several parts in KVM have been updated to provide guest CET support, including:
CPUID/XSAVES settings, MSR passthrough, user-space MSR access interface, vmentry/vmexit config, nested VM etc. These patches are dependent on CET kernel patches for XSAVES support and CET definitions, e.g., MSR and related feature flags.
CET kernel patches: refer to [1], [2].
Previous CET KVM patches: refer to [3].
CET QEMU patches: refer to [4].
CET KVM unit-test patch: refer to [5].
[1]: CET Shadow Stack patches v18:
https://lkml.kernel.org/linux-api/[email protected]/
[2]: Indirect Branch Tracking patches v18:
https://lkml.kernel.org/linux-api/[email protected]/
[3]: CET KVM patches v14:
https://lkml.kernel.org/kvm/[email protected]/
[4]: CET QEMU patches:
https://patchwork.ozlabs.org/project/qemu-devel/patch/[email protected]/
[5]: CET KVM unit-test patch:
https://patchwork.kernel.org/project/kvm/patch/[email protected]/
Changes in v15:
- Changed patches per Paolo's review feedback on v14.
- Added a new patch for GUEST_SSP save/restore in guest SMM case.
- Fixed guest call-trace issue due to CET MSR interception.
- Removed unnecessary guest CET state cleanup in VMCS.
- Rebased patches to 5.11-rc6.
Sean Christopherson (2):
KVM: x86: Report XSS as an MSR to be saved if there are supported
features
KVM: x86: Load guest fpu state when accessing MSRs managed by XSAVES
Yang Weijiang (12):
KVM: x86: Refresh CPUID on writes to MSR_IA32_XSS
KVM: x86: Add #CP support in guest exception dispatch
KVM: VMX: Introduce CET VMCS fields and flags
KVM: x86: Add fault checks for CR4.CET
KVM: VMX: Emulate reads and writes to CET MSRs
KVM: VMX: Add a synthetic MSR to allow userspace VMM to access
GUEST_SSP
KVM: x86: Report CET MSRs as to-be-saved if CET is supported
KVM: x86: Enable CET virtualization for VMX and advertise CET to
userspace
KVM: VMX: Pass through CET MSRs to the guest when supported
KVM: nVMX: Add helper to check the vmcs01 MSR bitmap for MSR
pass-through
KVM: nVMX: Enable CET support for nested VMX
KVM: x86: Save/Restore GUEST_SSP to/from SMRAM
arch/x86/include/asm/kvm_host.h | 4 +- arch/x86/include/asm/vmx.h | 8 ++ arch/x86/include/uapi/asm/kvm.h | 1 + arch/x86/include/uapi/asm/kvm_para.h | 1 + arch/x86/kvm/cpuid.c | 26 +++- arch/x86/kvm/emulate.c | 11 ++ arch/x86/kvm/vmx/capabilities.h | 5 + arch/x86/kvm/vmx/nested.c | 57 ++++++-- arch/x86/kvm/vmx/vmcs12.c | 6 + arch/x86/kvm/vmx/vmcs12.h | 14 +- arch/x86/kvm/vmx/vmx.c | 202 ++++++++++++++++++++++++++- arch/x86/kvm/x86.c | 67 ++++++++- arch/x86/kvm/x86.h | 10 +- 13 files changed, 387 insertions(+), 25 deletions(-)
Signature · 1 line
2.26.2