[PATCH v7 0/2] Fix and optimization of split_lock_detection

From: Xiaoyao Li
Date: Tue Mar 24 2020 - 23:27:04 EST


This series is split from "[PATCH v6 0/8] x86/split_lock: Fix and
virtualization of split lock detection"[1]. It contains one fix for the
initialization flow of split_lock_detection and one optimiazation for
runtime TEST_CTRL MSR access.

Other patches of [1] needs more time to improve.

Thanks.

[1]: https://lore.kernel.org/kvm/20200324151859.31068-1-xiaoyao.li@xxxxxxxxx/

Changes in v7:
- 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:
- 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:
- 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.

Changes in v4:
- Add patch 1 to rework the initialization flow of split lock
detection.
- Drop percpu MSR_TEST_CTRL cache, just use a static variable to cache
the reserved/unused bit of MSR_TEST_CTRL. [Sean]
- Add new option for split_lock_detect kernel param.
- Changlog refinement. [Sean]
- Add a new patch to enable MSR_TEST_CTRL for intel guest. [Sean]


Xiaoyao Li (2):
x86/split_lock: Rework the initialization flow of split lock detection
x86/split_lock: Avoid runtime reads of the TEST_CTRL MSR

arch/x86/kernel/cpu/intel.c | 85 +++++++++++++++++++++----------------
1 file changed, 48 insertions(+), 37 deletions(-)

--
2.20.1