|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 0/3] x86/vmx: fix for vmentry failure with TSX bits in LBR
The first 2 patches is a general optimization which is nice to have
prior to the 3rd patch which contains the real fix.
A similar bug was fixed in Linux's perf subsystem in Jun 2016:
commit 19fc9ddd61e059cc45464bdf6e8fa304bb94080f
("perf/x86/intel: Fix MSR_LAST_BRANCH_FROM_x bug when no TSX")
But the issue affects virtualized systems in a more severe way since
all LBR entries have to be fixed during vmentry.
v1 --> v2:
- qsort (heap sort) is replaced with a variant of insertion sort
- both host and guest MSR lists are now kept sorted
- vmx_find_guest_msr() is replaced with more generic vmx_find_msr()
- factored out changes to vmx_read/write_guest_msr() into a separate patch
- LBR_FORMAT_MSR_IA32_PERF_CAP define is added
- enum for LBR_FORMAT_* is added
- LBR_FROM_SIGNEXT_2MSB is now a define instead of static const
- u32/64 replaced with uint32/64_t in vmx.c
- Renamed "last_in_from_ip" --> "lbr_lastint_from"
- Added defines for the layout of struct lbr_info[]
- Added a comment to vmx_lbr_tsx_fixup() about MSR array being sorted
- Fixed tabs for cpu_has_* defines
- arch_vmx_struct::lbr_tsx_fixup_enabled is moved to fill up 1-byte hole
- Made lbr_from_start, lbr_from_end and lbr_lastint_from
global static __read_mostly.
Moved their initialization into vmx_lbr_tsx_fixup_check().
- Information about Live Migration is added to the commit message of 3/3
Sergey Dyasli (3):
x86/vmx: introduce vmx_find_msr()
x86/vmx: optimize vmx_read/write_guest_msr()
x86/vmx: fix vmentry failure with TSX bits in LBR
xen/arch/x86/hvm/vmx/vmcs.c | 71 +++++++++++++++++++++---------
xen/arch/x86/hvm/vmx/vmx.c | 90 ++++++++++++++++++++++++++++++++++++++
xen/include/asm-x86/cpufeature.h | 3 ++
xen/include/asm-x86/hvm/vmx/vmcs.h | 2 +
xen/include/asm-x86/msr-index.h | 2 +
5 files changed, 148 insertions(+), 20 deletions(-)
--
2.9.3
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |