I'm finding that it's useful to have static global domainsets for use in
kernel allocators (malloc(), kmem_malloc(), UMA, kstacks). Add some
plumbing to make that easy:
- Add a vm_phys routine that can be invoked by MD code once the NUMA
topology is discovered. Right now this is only used by the SRAT/SLIT
parser, but will likely be used by FDT code on non-ACPI systems in the
future.
- Predefined domainsets are allocated from .data instead of from the
domainset zone. This lets us use them in UMA without introducing a
bootstrapping issue. This results in a bit of bloat, but not much:
struct domainset is 40 bytes with LP64, and MAXMEMDOM is small on all
platforms.
- Predefine domainset_roundrobin and domainset_prefer.