Remove the eager-fpu option and cleanup the code accordingly.
The first patch removes the option and includes the justification.
The rest of the patches are cleanup and mostly have no functional change.
I measured a 0.7% geometric mean improvement with this series across a few
different benchmarks (Linux VMs on an AMD host). I'm not sure the
improvement is statistically significant, but it likely indicates it is
no worse than before.
A previous series to do this was submitted here:
https://lore.kernel.org/xen-devel/20240304091307.2295344-1-fouad.hilly@cloud.com/
With the exception of patch 4, I haven't kept authorship and sign-offs
since this is a reimplementation, albeit ending up at a similar place.
Thanks,
Ross
Ross Lagerwall (7):
x86: Always use eager-fpu
x86/vmx: Remove lazy FPU support
x86/svm: Remove lazy FPU support
x86: Remove fully_eager_fpu
x86: Remove fpu_initialised/fpu_dirty
x86/xstate: Stop tracking nonlazy xstate use
x86: Cleanup cr0.TS flag handling
Wei Liu (1):
x86/traps: Remove lazy FPU support
docs/misc/hypfs-paths.pandoc | 2 -
docs/misc/xen-command-line.pandoc | 7 +-
xen/arch/x86/cpu/common.c | 3 -
xen/arch/x86/domain.c | 2 +-
xen/arch/x86/domctl.c | 4 +-
xen/arch/x86/hvm/emulate.c | 38 +-------
xen/arch/x86/hvm/hvm.c | 16 ++--
xen/arch/x86/hvm/svm/nestedsvm.c | 67 +-------------
xen/arch/x86/hvm/svm/svm.c | 81 +---------------
xen/arch/x86/hvm/svm/vmcb.c | 4 +-
xen/arch/x86/hvm/vlapic.c | 3 -
xen/arch/x86/hvm/vmx/vmcs.c | 8 +-
xen/arch/x86/hvm/vmx/vmx.c | 70 +-------------
xen/arch/x86/hvm/vmx/vvmx.c | 15 +--
xen/arch/x86/i387.c | 112 ++---------------------
xen/arch/x86/include/asm/domain.h | 6 --
xen/arch/x86/include/asm/hvm/hvm.h | 3 -
xen/arch/x86/include/asm/hvm/svm-types.h | 6 --
xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 2 -
xen/arch/x86/include/asm/i387.h | 4 +-
xen/arch/x86/include/asm/spec_ctrl.h | 1 -
xen/arch/x86/include/asm/xstate.h | 17 +---
xen/arch/x86/pv/misc-hypercalls.c | 3 +-
xen/arch/x86/spec_ctrl.c | 88 +-----------------
xen/arch/x86/traps.c | 18 ++--
xen/arch/x86/xstate.c | 24 +----
xen/common/domain.c | 2 -
xen/common/efi/runtime.c | 4 +-
xen/include/xen/sched.h | 4 -
29 files changed, 56 insertions(+), 558 deletions(-)
--
2.53.0