Files
Lionel Debroux 98aefa1cbb numapar: the x86-64 NUMA_PAR switch-on, and AArch64/LoongArch64 enablement
The numa=par boot option now activates the parallel memory-test
scheduler built by the previous commits: at every stage start,
numa_run_active is set when NUMA_PAR is selected and the mapping model
validated with enough selected CPU-backed memory domains, and a NUMA_PAR
unavailable with the current selection falls back to the
topology-agnostic legacy paths (never NUMA_ON chunking), so no memory is
omitted. The dummy calibration applies the same window-0 policy as the
real run.

AArch64 and LoongArch64 are enabled behind their mapping validation:
the LoongArch64 NUMA address transform is checked for transformed-span
overlap (smp_numa_transform_valid(), always true without the
transform), and vmem_prepare_execution_contexts() downgrades NUMA_PAR
when it fails. The mapping models of AArch64 (identity) and
LoongArch64 (direct addressing) are shared, so no per-context roots
are prepared there; numa_parallel_available() no longer gates on
x86-64.
2026-10-16 19:50:13 +02:00

1.2 KiB

These host regressions extract C functions from the current checkout on each run. Run them from the repository root:

python3 scripts/tests/numa_scheduler.py
python3 scripts/tests/numa_maps.py
python3 scripts/tests/numa_chunks.py
python3 scripts/tests/numa_window_barrier.py
python3 scripts/tests/numa_resident_sweeps.py
python3 scripts/tests/numa_fallback.py
python3 scripts/tests/numa_accounting.py
python3 scripts/tests/numa_topology.py --sanitize

Use CC or the script's --cc argument to select a host compiler. A 64-bit host and Python 3 are required; the barrier regression also uses POSIX threads.

The suites check scheduler termination and per-stage ranges, stable ownership and CPU partitions, deterministic publication races, actual relocation copies with own-address and bit-fade patterns, safe failure fallback, work accounting, and reversible LoongArch address transforms. Hardware mapping, cache behavior, CPU startup and instruction execution after relocation require target boot or hardware validation.

The fallback suite records the inherited legacy NUMA_OFF alignment tail omission. These fixes also leave the pre-existing Modulo 20 minimum-chunk restriction in place; neither limitation is an exactly-once coverage claim.