Hi, On Thu, Jul 19, 2018 at 09:21:36AM +0000, linzhecheng wrote: > Hi, all > I found that qemu has a constraint in function numa_node_parse now: > If (node->has_memdev != have_memdevs) { > Error_setg(errp, "qemu: memdev option must be specified for either " > "all or no nodes"); > Return; > } > This restricts us from being able to configure an empty numa node (without > memory and cpus). But if I delete these codes, I can start a VM with cmdline: > qemu-system-x86_64 --enable-kvm -m size=2G,slots=256,maxmem=300G -smp > 2,maxcpus=4,sockets=4,cores=1,threads=1 -numa node,nodeid=0,cpus=0-1,mem=2048 > -numa node,nodeid=1,cpus=2-3 ... > We can see only one numa node inside the VM(I have tested both linux and > windows) after beginning. > And if I hot-plug the dimm memory devices into the empty node, vm will > present a new numa node inside and the new memory is online then. > I'm wondering if you have any related issue before? Or can we remove this > constraint? > Looking forward to your answers, thanks.
The check is there because memory_region_allocate_system_memory() doesn't know how to allocate memory correctly if only some nodes use memdev. I wouldn't remove the check completely, but just skip it if "mem=0" is specified explicitly. -- Eduardo