Message ID | 1386764361-15260-3-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
On 12/11/2013 05:19 AM, Paolo Bonzini wrote: > From: Wanlong Gao <gaowanlong@cn.fujitsu.com> > > 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 s/talb/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@cn.fujitsu.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > numa.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > + } > + if (numa_total != ram_size) { > + fprintf(stderr, "qemu: numa nodes total memory size " > + "should equal to ram_size\n"); s/to //
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;