HomeFreeBSD

vm_reserv: Sparsify the vm_reserv_array when VM_PHYSSEG_SPARSE

Description

vm_reserv: Sparsify the vm_reserv_array when VM_PHYSSEG_SPARSE

On an Ampere Altra system, the physical memory is populated
sparsely within the physical address space, with only about 0.4%
of physical addresses backed by RAM in the range [0, last_pa].

This is causing the vm_reserv_array to be over-sized by a few
orders of magnitude, wasting roughly 5 GiB on a system with
256 GiB of RAM.

The sparse allocation of vm_reserv_array is controlled by defining
VM_PHYSSEG_SPARSE, with the dense allocation still remaining for
platforms with VM_PHYSSEG_DENSE.

Reviewed by: markj, alc, kib
Approved by: scottl (implicit)
MFC after: 1 week
Sponsored by: Ampere Computing, Inc.
Differential Revision: https://reviews.freebsd.org/D26130

Details

Provenance
scottphAuthored on
Reviewer
markj
Differential Revision
D26130: vm_reserv: Sparsify the vm_reserv_array when VM_PHYSSEG_SPARSE
Parents
rS365979: Mark sysctls added in r365689 as MPSAFE.
Branches
Unknown
Tags
Unknown