CCing libvir-list. On Wed, Dec 04, 2013 at 03:58:50PM +0800, Wanlong Gao wrote: > If the total number of the assigned numa nodes memory is not > equal to the assigned ram size, it will write the wrong data > to ACPI talb, then the guest will ignore the wrong ACPI table > and recognize all memory to one node. It's buggy, we should > check it to ensure that we write the right data to ACPI table. > > Signed-off-by: Wanlong Gao <gaowanlong@xxxxxxxxxxxxxx> This will make configurations that could be running for years (except that the guest OS was ignoring the NUMA data) suddenly stop running. I just want to confirm: we really want that, right? Does libvirt allow this kind of broken configuration to be generated, or it already ensures the total NUMA node sizes match RAM size? > --- > numa.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/numa.c b/numa.c > index ce7736a..beda80e 100644 > --- a/numa.c > +++ b/numa.c > @@ -150,6 +150,16 @@ void set_numa_nodes(void) > node_mem[i] = ram_size - usedmem; > } > > + uint64_t numa_total = 0; > + for (i = 0; i < nb_numa_nodes; i++) { > + numa_total += node_mem[i]; > + } > + if (numa_total != ram_size) { > + fprintf(stderr, "qemu: numa nodes total memory size " > + "should equal to ram_size\n"); > + exit(1); > + } > + > for (i = 0; i < nb_numa_nodes; i++) { > if (!bitmap_empty(node_cpumask[i], MAX_CPUMASK_BITS)) { > break; > -- > 1.8.5 > > -- Eduardo -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list