qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] numa: Add a check whether the node0 has memory


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH] numa: Add a check whether the node0 has memory or not
Date: Tue, 15 Aug 2017 10:04:18 +0200

On Tue, 15 Aug 2017 09:26:46 +0800
Dou Liyang <address@hidden> wrote:

> Hi Eduardo,
> 
> At 08/14/2017 08:44 PM, Eduardo Habkost wrote:
> > On Mon, Aug 14, 2017 at 06:11:11PM +0800, Dou Liyang wrote:  
> >> Currently, Using the fisrt node without memory on the machine makes
> >> QEMU unhappy. With this example command line:
> >>   ... \
> >>   -m 1024M,slots=4,maxmem=32G \
> >>   -numa node,nodeid=0 \
> >>   -numa node,mem=1024M,nodeid=1 \
> >>   -numa node,nodeid=2 \
> >>   -numa node,nodeid=3 \
> >> Guest reports "No NUMA configuration found" and the NUMA topology is
> >> wrong.
> >>
> >> This is because when QEMU builds ACPI SRAT, it regards node0 as the
> >> default node to deal with the memory hole(640K-1M). this means the
> >> node0 must have some memory(>1M) firstly.
> >>
> >> Add a check in parse_numa_opts to avoid this situation.
> >>
> >> Signed-off-by: Dou Liyang <address@hidden>
> >> ---
> >>  numa.c | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/numa.c b/numa.c
> >> index e32af04..1d6f73f 100644
> >> --- a/numa.c
> >> +++ b/numa.c
> >> @@ -464,6 +464,10 @@ void parse_numa_opts(MachineState *ms)
> >>          if (i == nb_numa_nodes) {
> >>              assert(mc->numa_auto_assign_ram);
> >>              mc->numa_auto_assign_ram(mc, numa_info, nb_numa_nodes, 
> >> ram_size);
> >> +        } else if (i != 0) {
> >> +            error_report("The first NUMA node must have some memory"
> >> +                          " for building ACPI SART");
> >> +            exit(1);  
> >
> > This doesn't belong to numa.c.  numa.c is generic code, and the
> > requirement you described is specific for PC.
> >
> > Anyway, adding this check would make existing VM configurations
> > refuse to run after a QEMU upgrade.  I suggest fixing the bug in
> > the ACPI code instead.
> >  
> 
> I see.
> 
> If fixing the bug in the ACPI code, I have two solutions:
> 
> 1). Add a check in build_srat(). If the first node has no memory, QEMU
> will exit.
> 
> 2). Fix the initialization of memory affinity structure to cover this
> situation. Using the first node which has memory to deal with the memory
> hole.
> 
> I prefer solution 2. what about you?
I'd go for 2nd solution

> 
> Thanks,
>       dou.
> 
> 




reply via email to

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