qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3.2 02/31] NUMA: check if the total numa memory


From: Hu Tao
Subject: Re: [Qemu-devel] [PATCH v3.2 02/31] NUMA: check if the total numa memory size is equal to ram_size
Date: Mon, 9 Jun 2014 10:23:51 +0800
User-agent: Mutt/1.5.21 (2010-09-15)

On Sun, Jun 08, 2014 at 01:09:46PM +0300, Michael S. Tsirkin wrote:
> On Wed, May 14, 2014 at 05:43:06PM +0800, Hu Tao wrote:
> > From: Wanlong Gao <address@hidden>
> > 
> > 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 table, 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 <address@hidden>
> > Reviewed-by: Eduardo Habkost <address@hidden>
> > Signed-off-by: Paolo Bonzini <address@hidden>
> > Signed-off-by: Hu Tao <address@hidden>
> > ---
> >  numa.c | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> > 
> > diff --git a/numa.c b/numa.c
> > index 395c14f..1d2f761 100644
> > --- a/numa.c
> > +++ b/numa.c
> > @@ -27,6 +27,8 @@
> >  #include "exec/cpu-common.h"
> >  #include "qemu/bitmap.h"
> >  #include "qom/cpu.h"
> > +#include "qemu/error-report.h"
> > +#include "include/exec/cpu-common.h" /* for RAM_ADDR_FMT */
> >  
> >  static void numa_node_parse_cpus(int nodenr, const char *cpus)
> >  {
> > @@ -127,6 +129,7 @@ void numa_add(const char *optarg)
> >  void set_numa_nodes(void)
> >  {
> >      if (nb_numa_nodes > 0) {
> > +        uint64_t numa_total;
> >          int i;
> >  
> >          if (nb_numa_nodes > MAX_NODES) {
> > @@ -154,6 +157,17 @@ void set_numa_nodes(void)
> >              node_mem[i] = ram_size - usedmem;
> >          }
> >  
> > +        numa_total = 0;
> > +        for (i = 0; i < nb_numa_nodes; i++) {
> > +            numa_total += node_mem[i];
> > +        }
> > +        if (numa_total != ram_size) {
> > +            error_report("qemu: total memory size for NUMA nodes (%" 
> > PRIu64 ")"
> > +                         " should equal to ram_size (" RAM_ADDR_FMT ")\n",
> 
> should equal RAM size

Thanks.

Hu



reply via email to

[Prev in Thread] Current Thread [Next in Thread]