[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
  • Date: Thu, 19 Mar 2026 13:29:16 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xZYHh2nERUuC3aPj87t1rqwwMQkqw6AuIWVuFd7BOtY=; b=K/2rRVWPl/EjEb/RzYTwyFvRoWaUzTLcWuk5j1A9k0i0yg8Lg99ja+i86Mo6VyFaAUq7e+riY4JbyY5RxcEyUzy8n9BvUGL6t1f9WPLEU2R2rYIgZRxrK82/9uc9ZFBBcxlpj5g34NP4Lfg3x4CmIVdMoNTzDLD6CbNYUw92sXk5Sma6LicCChe6umicOJ0IbMrqX1GPbtIHyg/xBa2ihQW3m2OKYuBr0NhH4DPMW5gPH2PbTZGvQOuvcvL7EggF1TUg5oRAl40FGt1g+6YAdWrnm5p7bLCaUkttzAcsajwNi/3ym1++wHqZjef/f39QlXQdMoWh8+jsvreyK4SICQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fh/abOj6TbsJBERSuIRSREnZJWm9p5Ans47bJqSG/FYhN10M1dhJWOl8T1GLA1m9U0qglrXN2wsI5DmWcQ1W6ovwI8sViw7cWlw5grymStJy1XEUqtz42xA3kbIEVYQmlRLSl1df2uu/xbaa+NGfSKrIbm1K6PiYyk8agRQbHgiucfECSo5ROUjFkHA+WCnl3e2t9MQQ5t2C/N9BoXoCkTfMJTJ7jxnNeL3EF621j95IhNgwCtnA9tX0tfe7VRrm5Te2HbrO84Vk4a+5ygV3vHHS32HhVVQSJfuoGiSC7sDU+6DlKU1basjF2ZMrQJT0Kp+Yp9Le6Oc/B8CmFArS4g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Thu, 19 Mar 2026 13:29:38 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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@xxxxxxxxx/

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




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.