HomeFreeBSD

bhyve: Add support for specifying guest NUMA configuration

Description

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

Details

Provenance
bnovkovAuthored on Sep 8 2024, 4:06 PM
Reviewer
markj
Differential Revision
D44567: bhyve: Add support for specifying VM NUMA configuration
Parents
rG08c7dd2fbe4f: libvmmapi: Add support for setting up and configuring guest NUMA domains
Branches
Unknown
Tags
Unknown