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

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


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
  • Date: Tue, 24 Mar 2026 18:19:28 +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=SsDVWm2HyHxUVi0OR75wg4R0kv0bP476+3frH8dkrtE=; b=PzJC6pQZ0I/wHZ3g9riHnz6xsCtDkVzZ84u2DTf8cTTHAfV44SCyQZ+vYhP/kWDC3b29LzmOjxT3WQMpwtqwWdqFPE4TgEr6dNjm3WSTvFTEH8DA6Xf8xjdwx5kGiWzNsy1tXmmDYvCVyZRrBevxR643iTMS3Uc9FhXHZxL/Ot6k5yZXfPYRqyDOEtV+X4f2BoJ+vRXMTAyYwcVDrofPZzSjomEHIXH2TbW5M8ST8IWPzeKuuljPV4a3ZJBk33DFGFju3LgMw5hghVz0eayNUc0EmUc70uiOCEiYDfC1GbLNlHFguC5CKJ4yBiUvoXItHrG8aFd/Uk7T4OVBuQFUCQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i15pewFpMkhVkSh2KFM1clt4taaBhTz1F6+Eh1FpwYjT5bSSpLmMzToV2EsrsxetgrHFZuya/cNVJfWWIiGX/bJQdKKvCEx6qN2/C+CsCEHVz480ZRJmjB3hsIuHWT2FgO23TrJoB0IrEOYR2U4qi/ZzGoiADyJ8/14USV8uWh4Obfh3yKoi1DBdrVbAZGVFsUECTBARwNY8QzQcoHDF583m2sMqOgRS+CxwFulOWKRsNp62LAgkj1lUiM4SF1jW59XWJekDzd4iNvecjJCMB3Tw8HIp6Be9bcZmMUAzQebCw/FCnFZ/gsZZ1cwKxerLvbcS6JPHAuS31v2l+WBweQ==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 24 Mar 2026 18:19:55 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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

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




 


Rackspace

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