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 6 prepare the existing code to make it easier to introduce
a new PDX compression, including generalizing the initialization and
setup functions and adding a unit test for PDX compression.
Patch 7 introduce the new compression. The new compression is only
enabled by default on x86, other architectures are left with their
previous defaults.
Finally patch 8 optimizes one x86 loop that was iterating over pfn
ranges to instead use pdx values.
Thanks, Roger.
Roger Pau Monne (8):
kconfig: turn PDX compression into a choice
pdx: provide a unified set of unit functions
pdx: introduce command line compression toggle
pdx: allow per-arch optimization of PDX conversion helpers
test/pdx: add PDX compression unit tests
pdx: move some helpers in preparation for new compression
pdx: introduce a new compression algorithm based on region offsets
x86/mm: adjust loop in arch_init_memory() to iterate over the PDX
space
CHANGELOG.md | 3 +
docs/misc/xen-command-line.pandoc | 9 +
tools/tests/Makefile | 1 +
tools/tests/pdx/.gitignore | 3 +
tools/tests/pdx/Makefile | 50 +++
tools/tests/pdx/harness.h | 103 ++++++
tools/tests/pdx/test-pdx.c | 271 ++++++++++++++++
xen/arch/arm/include/asm/Makefile | 1 +
xen/arch/arm/setup.c | 36 +--
xen/arch/ppc/include/asm/Makefile | 1 +
xen/arch/riscv/include/asm/Makefile | 1 +
xen/arch/x86/include/asm/cpufeatures.h | 1 +
xen/arch/x86/include/asm/pdx.h | 75 +++++
xen/arch/x86/mm.c | 11 +-
xen/arch/x86/srat.c | 30 +-
xen/common/Kconfig | 37 ++-
xen/common/pdx.c | 429 +++++++++++++++++++++++--
xen/include/asm-generic/pdx.h | 24 ++
xen/include/xen/pdx.h | 202 ++++++++----
19 files changed, 1157 insertions(+), 131 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.c
create mode 100644 xen/arch/x86/include/asm/pdx.h
create mode 100644 xen/include/asm-generic/pdx.h
--
2.49.0