Hello,
This series implements a new PDX compression algorithm to cope with the
spare memory maps found on the Intel Sapphire/Granite Rapids.
Patches 1 to 5 prepare the existing code to make it easier to introduce
a new PDX compression, including generalizing the initialization and
setup functions so they are both usable by the existing and the new
compression.
Patches 6 to 8 introduce the new compression, with patch 6 adding most
of the code. Such patch also adds a unit test to exercise the logic
easily in user-space. The new compression is only enabled by default on
x86, other architectures are left with their previous defaults.
Thanks, Roger.
Roger Pau Monne (8):
x86/pdx: simplify calculation of domain struct allocation boundary
pdx: introduce function to calculate max PFN based on PDX compression
kconfig: turn PDX compression into a choice
pdx: provide a unified set of unit functions
pdx: allow optimizing PDX conversion helpers
pdx: introduce a new compression algorithm based on offsets between
regions
pdx: introduce translation helpers for offset compression
pdx: introduce a command line option for offset compression
CHANGELOG.md | 3 +
docs/misc/xen-command-line.pandoc | 22 ++
tools/tests/Makefile | 1 +
tools/tests/pdx/.gitignore | 3 +
tools/tests/pdx/Makefile | 54 ++++
tools/tests/pdx/harness.h | 73 +++++
tools/tests/pdx/test-pdx-offset.c | 320 +++++++++++++++++++
xen/arch/arm/setup.c | 34 +-
xen/arch/x86/domain.c | 35 +--
xen/arch/x86/include/asm/cpufeatures.h | 1 +
xen/arch/x86/setup.c | 19 +-
xen/arch/x86/srat.c | 30 +-
xen/common/Kconfig | 25 +-
xen/common/pdx.c | 419 +++++++++++++++++++++++--
xen/include/xen/pdx.h | 216 +++++++++----
15 files changed, 1092 insertions(+), 163 deletions(-)
create mode 100644 tools/tests/pdx/.gitignore
create mode 100644 tools/tests/pdx/Makefile
create mode 100644 tools/tests/pdx/harness.h
create mode 100644 tools/tests/pdx/test-pdx-offset.c
--
2.49.0