qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 1/1] numa: Print warning if no node is assign


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH v5 1/1] numa: Print warning if no node is assigned to a CPU
Date: Wed, 4 Mar 2015 11:09:34 -0300
User-agent: Mutt/1.5.23 (2014-03-12)

On Wed, Mar 04, 2015 at 10:52:58AM -0300, Eduardo Habkost wrote:
> We need all possible CPUs (including hotplug ones) to be present in the
> SRAT when QEMU starts. QEMU already does that correctly today, the only
> problem is that when a CPU is omitted from the NUMA configuration, it is
> silently assigned to node 0.
> 
> Check if all CPUs up to max_cpus are present in the NUMA configuration
> and warn about missing CPUs.
> 
> Make it just a warning, to allow management software to be updated if
> necessary. In the future we may make it a fatal error instead.

Michael asked for a command-line example, so I will include this in the commit
log when queueing the patch:

Correct command-line, no warning:

  $ qemu-system-x86_64 -smp 2,maxcpus=4
  $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-3

Incomplete command-line, with warnings:

  $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0
  qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 1 2 3
  qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in 
NUMA config

  $ qemu-system-x86_64 -smp 2,maxcpus=4 -numa node,cpus=0-2
  qemu-system-x86_64: warning: CPU(s) not present in any NUMA nodes: 3
  qemu-system-x86_64: warning: All CPU(s) up to maxcpus should be described in 
NUMA config

> 
> Signed-off-by: Eduardo Habkost <address@hidden>
> ---
> v1 -> v2: (no changes)
> 
> v2 -> v3:
>  * Use enumerate_cpus() and error_report() for error message
>  * Simplify logic using bitmap_full()
> 
> v3 -> v4:
>  * Clarify error message, mention that all CPUs up to
>    maxcpus need to be described in NUMA config
> 
> v4 -> v5:
>  * Commit log update, to make problem description clearer
> ---
>  numa.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/numa.c b/numa.c
> index e922265..9b2ba05 100644
> --- a/numa.c
> +++ b/numa.c
> @@ -200,6 +200,16 @@ static void validate_numa_cpus(void)
>          bitmap_or(seen_cpus, seen_cpus,
>                    numa_info[i].node_cpu, MAX_CPUMASK_BITS);
>      }
> +
> +    if (!bitmap_full(seen_cpus, max_cpus)) {
> +        char *msg;
> +        bitmap_complement(seen_cpus, seen_cpus, max_cpus);
> +        msg = enumerate_cpus(seen_cpus, max_cpus);
> +        error_report("warning: CPU(s) not present in any NUMA nodes: %s", 
> msg);
> +        error_report("warning: All CPU(s) up to maxcpus should be described "
> +                     "in NUMA config");
> +        g_free(msg);
> +    }
>  }
>  
>  void parse_numa_opts(void)
> -- 
> 2.1.0
> 

-- 
Eduardo



reply via email to

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