[PATCH v2 0/9] x86: Always use eager-fpu

Ross Lagerwall posted 9 patches 1 week, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20260324181937.2465574-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                    |   4 +-
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                      | 109 ++---------------------
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                     |  20 +++--
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, 59 insertions(+), 556 deletions(-)
[PATCH v2 0/9] x86: Always use eager-fpu
Posted by Ross Lagerwall 1 week, 4 days ago
Remove the eager-fpu option and cleanup the code accordingly.

The first patch is a bugfix, new in v2.
The second 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 5, I haven't kept authorship and sign-offs
since this is a reimplementation, albeit ending up at a similar place.

Thanks,
Ross

Ross Lagerwall (8):
  x86/domain: Ensure a vCPU's FPU is reset early
  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                    |   4 +-
 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                      | 109 ++---------------------
 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                     |  20 +++--
 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, 59 insertions(+), 556 deletions(-)

-- 
2.53.0