lkml.org 
[lkml]   [2020]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v8 0/4] KVM: Add virtualization support of split lock detection
Date
This series aims to add the virtualization of split lock detection in
KVM.

Due to the fact MSR TEST_CTRL is per-core scope, feature split lock
detection can be exposed to guest only when SMT is disabled/unsupported.

Changes in v8:
- rebase to v5.7-rc1.
- basic enabling of split lock detection already merged.
- When host is sld_warn and nosmt, load guest's sld bit when in KVM
context, i.e., between vmx_prepare_switch_to_guest() and before
vmx_prepare_switch_to_host(), KVM uses guest sld setting.

Changes in v7:
https://lkml.kernel.org/r/20200325030924.132881-1-xiaoyao.li@intel.com
- only pick patch 1 and patch 2, and hold all the left.
- Update SLD bit on each processor based on sld_state.

Changes in v6:
https://lkml.kernel.org/r/20200324151859.31068-1-xiaoyao.li@intel.com
- Drop the sld_not_exist flag and use X86_FEATURE_SPLIT_LOCK_DETECT to
check whether need to init split lock detection. [tglx]
- Use tglx's method to verify the existence of split lock detectoin.
- small optimization of sld_update_msr() that the default value of
msr_test_ctrl_cache has split_lock_detect bit cleared.
- Drop the patch3 in v5 that introducing kvm_only option. [tglx]
- Rebase patch4-8 to kvm/queue.
- use the new kvm-cpu-cap to expose X86_FEATURE_CORE_CAPABILITIES in
Patch 6.

Changes in v5:
https://lkml.kernel.org/r/20200315050517.127446-1-xiaoyao.li@intel.com
- Use X86_FEATURE_SPLIT_LOCK_DETECT flag in kvm to ensure split lock
detection is really supported.
- Add and export sld related helper functions in their related usecase
kvm patches.

Xiaoyao Li (4):
kvm: x86: Emulate MSR IA32_CORE_CAPABILITIES
kvm: vmx: Enable MSR TEST_CTRL for guest
x86/split_lock: Export sld_update_msr() and sld_state
kvm: vmx: virtualize split lock detection

arch/x86/include/asm/cpu.h | 12 +++++
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kernel/cpu/intel.c | 13 ++----
arch/x86/kvm/cpuid.c | 3 +-
arch/x86/kvm/vmx/vmx.c | 83 ++++++++++++++++++++++++++++++---
arch/x86/kvm/vmx/vmx.h | 2 +
arch/x86/kvm/x86.c | 35 +++++++++++++-
7 files changed, 132 insertions(+), 17 deletions(-)

--
2.20.1

\
 
 \ /
  Last update: 2020-04-14 08:51    [W:0.077 / U:0.156 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site