From: Eduardo Habkost <ehabk...@redhat.com> We don't support sparse NUMA node IDs yet, so this changes QEMU to reject configs where not all nodes are present.
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Michael S. Tsirkin <m...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> --- numa.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/numa.c b/numa.c index c254127..2fde740 100644 --- a/numa.c +++ b/numa.c @@ -160,9 +160,24 @@ error: void set_numa_nodes(void) { + int i; + + assert(max_numa_nodeid <= MAX_NODES); + + /* No support for sparse NUMA node IDs yet: */ + for (i = max_numa_nodeid - 1; i >= 0; i--) { + /* Report large node IDs first, to make mistakes easier to spot */ + if (!numa_info[i].present) { + error_report("numa: Node ID missing: %d", i); + exit(1); + } + } + + /* This must be always true if all nodes are present: */ + assert(nb_numa_nodes == max_numa_nodeid); + if (nb_numa_nodes > 0) { uint64_t numa_total; - int i; if (nb_numa_nodes > MAX_NODES) { nb_numa_nodes = MAX_NODES; -- MST