This has grown somewhat from v2, but is better for it IMO.
The headline change is patch 2 performing all the cross-checking at boot time.
This turned into needing prepare the Raw CPU policy earlier on boot (to avoid
further-adding to scheme we're already looking to retire).
The end result has been tested across the entire XenServer hardware lab. This
found several false assupmtion about how the dynamic sizes behave.
Patches 1 and 6 the main bugfixes from this series. There's still lots more
work to do in order to get AMX and/or CET working, but this is at least a 4-yo
series finally off my plate.
Andrew Cooper (7):
x86/xstate: Fix initialisation of XSS cache
x86/xstate: Cross-check dynamic XSTATE sizes at boot
x86/boot: Collect the Raw CPU Policy earlier on boot
x86/xstate: Rework xstate_ctxt_size() as xstate_uncompressed_size()
x86/cpu-policy: Simplify recalculate_xstate()
x86/cpuid: Fix handling of XSAVE dynamic leaves
x86/defns: Clean up X86_{XCR0,XSS}_* constants
xen/arch/x86/cpu-policy.c | 56 ++--
xen/arch/x86/cpuid.c | 24 +-
xen/arch/x86/domctl.c | 2 +-
xen/arch/x86/hvm/hvm.c | 2 +-
xen/arch/x86/i387.c | 2 +-
xen/arch/x86/include/asm/x86-defns.h | 55 ++--
xen/arch/x86/include/asm/xstate.h | 8 +-
xen/arch/x86/setup.c | 4 +-
xen/arch/x86/xstate.c | 286 +++++++++++++++++---
xen/include/public/arch-x86/cpufeatureset.h | 3 +
xen/include/xen/lib/x86/cpu-policy.h | 2 +-
11 files changed, 322 insertions(+), 122 deletions(-)
--
2.30.2