[PATCH v1 0/8] x86: Always use eager-fpu

Ross Lagerwall posted 8 patches 4 days, 4 hours ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20260319132924.1469809-1-ross.lagerwall@citrix.com
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(-)
[PATCH v1 0/8] x86: Always use eager-fpu
Posted by Ross Lagerwall 4 days, 4 hours ago
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