command "qemu-system-riscv64 -machine virt -m 2G -smp 1 -numa node,mem=1G -numa node,mem=1G" would trigger this problem. This commit fixes the issue by adding parameter checks.
Signed-off-by: Yin Wang <yin.w...@intel.com> --- hw/core/numa.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/core/numa.c b/hw/core/numa.c index d8d36b16d8..ff249369be 100644 --- a/hw/core/numa.c +++ b/hw/core/numa.c @@ -168,6 +168,13 @@ static void parse_numa_node(MachineState *ms, NumaNodeOptions *node, numa_info[nodenr].present = true; max_numa_nodeid = MAX(max_numa_nodeid, nodenr + 1); ms->numa_state->num_nodes++; + if (ms->smp.max_cpus < ms->numa_state->num_nodes) { + error_setg(errp, + "Number of NUMA nodes:(%d)" + " is larger than number of CPUs:(%d)", + ms->numa_state->num_nodes, ms->smp.max_cpus); + return; + } } static -- 2.34.1