All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/23] x86: FRED support
@ 2025-08-28 15:03 Andrew Cooper
  2025-08-28 15:03 ` [PATCH v2 01/23] x86: FRED enumerations Andrew Cooper
                   ` (22 more replies)
  0 siblings, 23 replies; 56+ messages in thread
From: Andrew Cooper @ 2025-08-28 15:03 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper, Jan Beulich, Roger Pau Monné

This is now everything to get to tech preview, except for the caveat that it's
still not been tried on real hardware yet, so is staying experimental for now.

The first few patches have been seen before but the latter half of the series
is new, adding support for running PV guests when Xen is using FRED.  Some
work here has influenced earlier patches.

See patches for details.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2009286102

This series is still based on the MSR cleaup series posted previously.

Andrew Cooper (23):
  x86: FRED enumerations
  x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields
  x86/traps: Introduce opt_fred
  x86/boot: Adjust CR4 handling around percpu_early_traps_init()
  x86/S3: Switch to using RSTORSSP to recover SSP on resume
  x86/traps: Set MSR_PL0_SSP in load_system_tables()
  x86/boot: Use RSTORSSP to establish SSP
  x86/traps: Alter switch_stack_and_jump() for FRED mode
  x86/traps: Skip Supervisor Shadow Stack tokens in FRED mode
  x86/traps: Make an IDT-specific #DB helper
  x86/traps: Make an IDT-specific #PF helper
  x86/fsgsbase: Make gskern accesses safe under FRED
  x86/traps: Introduce FRED entrypoints
  x86/traps: Enable FRED when requested
  x86/pv: Deduplicate is_canonical_address() in do_set_segment_base()
  x86/entry: Alter how IRET faults are recognised
  x86/entry: Drop the pre exception table infrastructure
  x86/entry: Rework the comment about SYSCALL and DF
  x86/pv: Adjust GS handling for FRED mode
  x86/pv: Exception handling in FRED mode
  x86/pv: ERETU error handling
  x86/pv: System call handling in FRED mode
  x86/pv: Adjust eflags handling for FRED mode

 docs/misc/xen-command-line.pandoc           |  10 +
 xen/arch/x86/acpi/wakeup_prot.S             |  52 +-
 xen/arch/x86/boot/x86_64.S                  |  48 +-
 xen/arch/x86/domain.c                       |  26 +-
 xen/arch/x86/extable.c                      |  14 -
 xen/arch/x86/hvm/domain.c                   |   4 +-
 xen/arch/x86/include/asm/asm-defns.h        |   8 +
 xen/arch/x86/include/asm/asm_defns.h        |  76 ++-
 xen/arch/x86/include/asm/cpu-user-regs.h    |  71 ++-
 xen/arch/x86/include/asm/cpufeature.h       |   3 +
 xen/arch/x86/include/asm/cpufeatures.h      |   2 +-
 xen/arch/x86/include/asm/current.h          |   9 +-
 xen/arch/x86/include/asm/domain.h           |   5 +
 xen/arch/x86/include/asm/fsgsbase.h         |   8 +-
 xen/arch/x86/include/asm/hypercall.h        |   5 +
 xen/arch/x86/include/asm/msr-index.h        |  11 +
 xen/arch/x86/include/asm/traps.h            |   6 +
 xen/arch/x86/include/asm/uaccess.h          |   2 -
 xen/arch/x86/include/asm/x86-defns.h        |   8 +
 xen/arch/x86/mm.c                           |  12 +-
 xen/arch/x86/pv/dom0_build.c                |   2 +-
 xen/arch/x86/pv/domain.c                    |  22 +-
 xen/arch/x86/pv/iret.c                      |   8 +-
 xen/arch/x86/pv/misc-hypercalls.c           |  42 +-
 xen/arch/x86/pv/traps.c                     |  33 ++
 xen/arch/x86/setup.c                        |  35 +-
 xen/arch/x86/traps-setup.c                  | 127 ++++-
 xen/arch/x86/traps.c                        | 511 ++++++++++++++++++--
 xen/arch/x86/x86_64/Makefile                |   1 +
 xen/arch/x86/x86_64/compat/entry.S          |   3 +-
 xen/arch/x86/x86_64/entry-fred.S            |  57 +++
 xen/arch/x86/x86_64/entry.S                 |  46 +-
 xen/arch/x86/xen.lds.S                      |   5 -
 xen/include/public/arch-x86/cpufeatureset.h |   3 +
 34 files changed, 1106 insertions(+), 169 deletions(-)
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

-- 
2.39.5



^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2025-09-02  6:17 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-28 15:03 [PATCH v2 00/23] x86: FRED support Andrew Cooper
2025-08-28 15:03 ` [PATCH v2 01/23] x86: FRED enumerations Andrew Cooper
2025-08-28 15:33   ` Andrew Cooper
2025-08-28 15:03 ` [PATCH v2 02/23] x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields Andrew Cooper
2025-08-28 15:18   ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 03/23] x86/traps: Introduce opt_fred Andrew Cooper
2025-08-28 15:20   ` Jan Beulich
2025-09-01 13:15   ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 04/23] x86/boot: Adjust CR4 handling around percpu_early_traps_init() Andrew Cooper
2025-08-28 15:03 ` [PATCH v2 05/23] x86/S3: Switch to using RSTORSSP to recover SSP on resume Andrew Cooper
2025-08-28 15:03 ` [PATCH v2 06/23] x86/traps: Set MSR_PL0_SSP in load_system_tables() Andrew Cooper
2025-09-01  9:23   ` Jan Beulich
2025-09-01 15:31     ` Andrew Cooper
2025-08-28 15:03 ` [PATCH v2 07/23] x86/boot: Use RSTORSSP to establish SSP Andrew Cooper
2025-09-01  9:28   ` Jan Beulich
2025-09-01 15:33     ` Andrew Cooper
2025-09-01 15:41       ` Jan Beulich
2025-09-01 18:53         ` Andrew Cooper
2025-09-02  6:17           ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 08/23] x86/traps: Alter switch_stack_and_jump() for FRED mode Andrew Cooper
2025-09-01  9:30   ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 09/23] x86/traps: Skip Supervisor Shadow Stack tokens in " Andrew Cooper
2025-09-01  9:38   ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 10/23] x86/traps: Make an IDT-specific #DB helper Andrew Cooper
2025-09-01  9:41   ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 11/23] x86/traps: Make an IDT-specific #PF helper Andrew Cooper
2025-09-01  9:46   ` Jan Beulich
2025-09-01 15:36     ` Andrew Cooper
2025-09-01 15:42       ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 12/23] x86/fsgsbase: Make gskern accesses safe under FRED Andrew Cooper
2025-09-01  9:57   ` Jan Beulich
2025-08-28 15:03 ` [PATCH v2 13/23] x86/traps: Introduce FRED entrypoints Andrew Cooper
2025-09-01 10:26   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 14/23] x86/traps: Enable FRED when requested Andrew Cooper
2025-09-01 10:50   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 15/23] x86/pv: Deduplicate is_canonical_address() in do_set_segment_base() Andrew Cooper
2025-09-01 11:22   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 16/23] x86/entry: Alter how IRET faults are recognised Andrew Cooper
2025-09-01 11:41   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 17/23] x86/entry: Drop the pre exception table infrastructure Andrew Cooper
2025-09-01 11:45   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 18/23] x86/entry: Rework the comment about SYSCALL and DF Andrew Cooper
2025-09-01 11:52   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 19/23] x86/pv: Adjust GS handling for FRED mode Andrew Cooper
2025-09-01 12:02   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 20/23] x86/pv: Exception handling in " Andrew Cooper
2025-09-01 12:23   ` Jan Beulich
2025-09-01 12:57   ` Jan Beulich
2025-09-01 13:27     ` Andrew Cooper
2025-09-01 13:55       ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 21/23] x86/pv: ERETU error handling Andrew Cooper
2025-09-01 13:13   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 22/23] x86/pv: System call handling in FRED mode Andrew Cooper
2025-09-01 13:49   ` Jan Beulich
2025-08-28 15:04 ` [PATCH v2 23/23] x86/pv: Adjust eflags handling for " Andrew Cooper
2025-09-01 14:17   ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.