On Mon, Jun 16, 2014 at 05:53:53PM +1000, Alexey Kardashevskiy wrote:
> Currently NUMA nodes must go consequently and QEMU ignores nodes
> with @nodeid bigger than the number of NUMA nodes in the command line.

Why would somebody need a NUMA node with nodeid bigger than the number
of NUMA nodes? NUMA node IDs must be in the [0, numa_nodes-1] range.

> This prevents us from creating memory-less nodes which is possible
> situation in POWERPC under pHyp or Sapphire.

Why? If I recall correctly, nodes without any CPUs or any memory are
already allowed.

How exactly would this patch help you? How do you expect the
command-line to look like for your use case?

> 
> This makes nb_numa_nodes a total number of nodes or the biggest node
> number + 1 whichever is greater.
> 
> Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
> ---
>  vl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/vl.c b/vl.c
> index ac0e3d7..f1b75cb 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1356,7 +1356,7 @@ static void numa_add(const char *optarg)
>          if (get_param_value(option, 128, "cpus", optarg) != 0) {
>              numa_node_parse_cpus(nodenr, option);
>          }
> -        nb_numa_nodes++;
> +        nb_numa_nodes = MAX(nb_numa_nodes + 1, nodenr + 1);

I would instead suggest that if any node in the [0, max_node_id] range
is not present on the command-line, QEMU should instead reject the
command-line.

>      } else {
>          fprintf(stderr, "Invalid -numa option: %s\n", option);
>          exit(1);
> -- 
> 2.0.0
> 

-- 
Eduardo

Reply via email to