[PATCH v2 0/2] x86: FPU handling cleanup

Alejandro Vallejo posted 2 patches 3 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20240808134150.29927-1-alejandro.vallejo@cloud.com
There is a newer version of this series
xen/arch/x86/domain.c             |   7 +-
xen/arch/x86/domctl.c             |   5 +-
xen/arch/x86/hvm/emulate.c        |   4 +-
xen/arch/x86/hvm/hvm.c            |  32 +++++++---
xen/arch/x86/i387.c               | 103 ++++++++++--------------------
xen/arch/x86/include/asm/domain.h |   8 +--
xen/arch/x86/include/asm/i387.h   |  28 ++++++--
xen/arch/x86/include/asm/xstate.h |   1 +
xen/arch/x86/x86_emulate/blk.c    |   3 +-
xen/arch/x86/xstate.c             |  13 +++-
10 files changed, 108 insertions(+), 96 deletions(-)
[PATCH v2 0/2] x86: FPU handling cleanup
Posted by Alejandro Vallejo 3 months, 2 weeks ago
v1: https://lore.kernel.org/xen-devel/cover.1720538832.git.alejandro.vallejo@cloud.com/T/#t
v1 -> v2: v1/patch1 and v1/patch2 are already in staging.

=============================== Original cover letter =========================
I want to eventually reach a position in which the FPU state can be allocated
from the domheap and hidden via the same core mechanism proposed in Elias'
directmap removal series. Doing so is complicated by the presence of 2 aliased
pointers (v->arch.fpu_ctxt and v->arch.xsave_area) and the rather complicated
semantics of vcpu_setup_fpu(). This series tries to simplify the code so moving
to a "map/modify/unmap" model is more tractable.

Patches 1 and 2 are trivial refactors.

Patch 3 unifies FPU state so an XSAVE area is allocated per vCPU regardless of
the host supporting it or not. The rationale is that the memory savings are
negligible and not worth the extra complexity.

Patch 4 is a non-trivial split of the vcpu_setup_fpu() into 2 separate
functions. One to override x87/SSE state, and another to set a reset state.
===============================================================================

Alejandro Vallejo (2):
  x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu
  x86/fpu: Split fpu_setup_fpu() in two

 xen/arch/x86/domain.c             |   7 +-
 xen/arch/x86/domctl.c             |   5 +-
 xen/arch/x86/hvm/emulate.c        |   4 +-
 xen/arch/x86/hvm/hvm.c            |  32 +++++++---
 xen/arch/x86/i387.c               | 103 ++++++++++--------------------
 xen/arch/x86/include/asm/domain.h |   8 +--
 xen/arch/x86/include/asm/i387.h   |  28 ++++++--
 xen/arch/x86/include/asm/xstate.h |   1 +
 xen/arch/x86/x86_emulate/blk.c    |   3 +-
 xen/arch/x86/xstate.c             |  13 +++-
 10 files changed, 108 insertions(+), 96 deletions(-)

-- 
2.45.2