bhyve: Add support for specifying guest NUMA configuration
This patch adds basic support for adding NUMA domains to a bhyve VM.
The user can define a NUMA domain using the -n flag, which expects
a domain id, a CPU set, and memory size for each NUMA domain.
After parsing the node configurations, we use the interfaces added in
previous patches to set the NUMA configuration for the virtual machine.
Afterwards, we use the configuration to build the ACPI
'Static Resource Affinity Table' (SRAT) which is used to pass NUMA
information to the guest.
Users can optionally configure domainset(9) allocation policies
for each domain. Since each NUMA domain is essentially a separate
system memory segment, we can parse user-provided domainset(9) policies
and install them into its backing 'vm_object'.
Differential Revision: https://reviews.freebsd.org/D44567
Reviewed by: markj
Relnotes: yes