All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/14] x86: FRED support
@ 2026-02-27 23:16 Andrew Cooper
  2026-02-27 23:16 ` [PATCH v4 01/14] x86/pv: Don't assume that INT $imm8 instructions are two bytes long Andrew Cooper
                   ` (13 more replies)
  0 siblings, 14 replies; 43+ messages in thread
From: Andrew Cooper @ 2026-02-27 23:16 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper, Jan Beulich, Roger Pau Monné

This version of the series has finally run on real hardware, Intel
PantherLake.  Notable changes:

 * Rework TSS setup, given an unpleasant discovery about VT-x.
 * Fix an INT $N emulation bug in IDT mode, discovered by XTF testing to check
   that FRED behaved the same.
 * Document aspects of the PV ABI now they've been thoroughly reverse
   engineered.

By the end of patch 6, PVH dom0 works.
By the end of the series, PV dom0 works.

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

Andrew Cooper (14):
  x86/pv: Don't assume that INT $imm8 instructions are two bytes long
  docs/guest-guide: Describe the PV traps and entrypoints ABI
  x86/boot: Move gdt_l1e caching out of traps_init()
  x86/boot: Document the ordering dependency of _svm_cpu_up()
  x86/traps: Move traps_init() earlier on boot
  x86/traps: Don't configure Supervisor Shadow Stack tokens in FRED mode
  x86/traps: Introduce FRED entrypoints
  x86/traps: Enable FRED when requested
  x86/pv: Adjust GS handling for FRED mode
  x86/pv: Guest exception handling in FRED mode
  x86/pv: ERETU error handling
  x86/pv: System call handling in FRED mode
  x86: Clamp reserved bits in eflags more aggressively
  x86/traps: Use fatal_trap() for #UD and #GP

 docs/glossary.rst                    |   3 +
 docs/guest-guide/x86/index.rst       |   1 +
 docs/guest-guide/x86/pv-traps.rst    | 123 +++++++
 xen/arch/x86/cpu/common.c            |   4 +-
 xen/arch/x86/domain.c                |  22 +-
 xen/arch/x86/hvm/domain.c            |   4 +-
 xen/arch/x86/hvm/svm/svm.c           |  16 +
 xen/arch/x86/include/asm/asm_defns.h |  63 ++++
 xen/arch/x86/include/asm/current.h   |   3 +
 xen/arch/x86/include/asm/domain.h    |   2 +
 xen/arch/x86/include/asm/hypercall.h |   2 -
 xen/arch/x86/include/asm/pv/traps.h  |   2 +
 xen/arch/x86/include/asm/traps.h     |   2 +
 xen/arch/x86/include/asm/x86-defns.h |   7 +
 xen/arch/x86/mm.c                    |  14 +-
 xen/arch/x86/pv/dom0_build.c         |   2 +-
 xen/arch/x86/pv/domain.c             |  22 +-
 xen/arch/x86/pv/emul-priv-op.c       |  72 +++-
 xen/arch/x86/pv/iret.c               |   8 +-
 xen/arch/x86/pv/misc-hypercalls.c    |  16 +-
 xen/arch/x86/pv/traps.c              |  39 +++
 xen/arch/x86/setup.c                 |  20 +-
 xen/arch/x86/smpboot.c               |  11 +
 xen/arch/x86/traps-setup.c           | 147 +++++++-
 xen/arch/x86/traps.c                 | 486 ++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/Makefile         |   1 +
 xen/arch/x86/x86_64/entry-fred.S     |  57 ++++
 xen/arch/x86/x86_64/entry.S          |   4 +-
 28 files changed, 1091 insertions(+), 62 deletions(-)
 create mode 100644 docs/guest-guide/x86/pv-traps.rst
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

-- 
2.39.5



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

end of thread, other threads:[~2026-03-12 12:37 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-27 23:16 [PATCH v4 00/14] x86: FRED support Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 01/14] x86/pv: Don't assume that INT $imm8 instructions are two bytes long Andrew Cooper
2026-03-02 11:03   ` Jan Beulich
2026-03-02 11:43     ` Andrew Cooper
2026-03-02 12:57       ` Jan Beulich
2026-03-02 16:39         ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 02/14] docs/guest-guide: Describe the PV traps and entrypoints ABI Andrew Cooper
2026-03-02 11:19   ` Jan Beulich
2026-03-02 14:47     ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 03/14] x86/boot: Move gdt_l1e caching out of traps_init() Andrew Cooper
2026-03-02 11:33   ` Jan Beulich
2026-02-27 23:16 ` [PATCH v4 04/14] x86/boot: Document the ordering dependency of _svm_cpu_up() Andrew Cooper
2026-03-02 11:35   ` Jan Beulich
2026-03-02 15:20   ` Andrew Cooper
2026-03-02 15:34     ` Jan Beulich
2026-03-02 15:42       ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 05/14] x86/traps: Move traps_init() earlier on boot Andrew Cooper
2026-03-02 11:39   ` Jan Beulich
2026-03-02 15:32     ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 06/14] x86/traps: Don't configure Supervisor Shadow Stack tokens in FRED mode Andrew Cooper
2026-03-02 14:50   ` Jan Beulich
2026-03-02 15:47     ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 07/14] x86/traps: Introduce FRED entrypoints Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 08/14] x86/traps: Enable FRED when requested Andrew Cooper
2026-03-02 16:12   ` Jan Beulich
2026-03-03 13:44     ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 09/14] x86/pv: Adjust GS handling for FRED mode Andrew Cooper
2026-03-02 16:24   ` Jan Beulich
2026-03-04 17:18   ` [PATCH v4.1 " Andrew Cooper
2026-03-05 10:00     ` Jan Beulich
2026-02-27 23:16 ` [PATCH v4 10/14] x86/pv: Guest exception handling in " Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 11/14] x86/pv: ERETU error handling Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 12/14] x86/pv: System call handling in FRED mode Andrew Cooper
2026-03-09 22:25   ` Andrew Cooper
2026-03-10  7:16     ` Jan Beulich
2026-02-27 23:16 ` [PATCH v4 13/14] x86: Clamp reserved bits in eflags more aggressively Andrew Cooper
2026-03-02 16:35   ` Jan Beulich
2026-03-11 17:58   ` [PATCH v4.1 13/14] x86: Clamp " Andrew Cooper
2026-03-12  8:15     ` Jan Beulich
2026-03-12 12:36       ` Andrew Cooper
2026-02-27 23:16 ` [PATCH v4 14/14] x86/traps: Use fatal_trap() for #UD and #GP Andrew Cooper
2026-03-02 16:39   ` Jan Beulich
2026-03-02 16:40   ` 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.