[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] cpu: Make the mapping of CPUs and NUMA node
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] cpu: Make the mapping of CPUs and NUMA nodes in cpu_common_realizefn |
Date: |
Wed, 18 Jan 2017 10:56:27 -0200 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Wed, Jan 18, 2017 at 08:40:05PM +0800, Dou Liyang wrote:
> Current default way of seting the CPUState::numa_node might be wrong
> in case on cold/hot-plug CPUs. Making the users confused why the
> NUMA info is different beetween the guests and monitor.
>
> Make the mapping of CPUs and NUMA nodes in qom/cpu.c:
> cpu_common_realizefn(), where each VCPUs need to realize.
>
> Signed-off-by: Dou Liyang <address@hidden>
parse_numa_opts() is called a long time before any CPU is
created, so this should be safe.
Reviewed-by: Eduardo Habkost <address@hidden>
(But we can squash patch 2/3 and patch 3/3 in this patch).
> ---
> qom/cpu.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/qom/cpu.c b/qom/cpu.c
> index 61ee0cb..e08dceb 100644
> --- a/qom/cpu.c
> +++ b/qom/cpu.c
> @@ -23,6 +23,7 @@
> #include "qemu-common.h"
> #include "qom/cpu.h"
> #include "sysemu/kvm.h"
> +#include "sysemu/numa.h"
> #include "qemu/notify.h"
> #include "qemu/log.h"
> #include "exec/log.h"
> @@ -338,6 +339,18 @@ static void cpu_common_parse_features(const char
> *typename, char *features,
> }
> }
>
> +static void cpu_common_map_numa_node(CPUState *cpu)
> +{
> + int i;
> +
> + for (i = 0; i < nb_numa_nodes; i++) {
> + assert(cpu->cpu_index < max_cpus);
> + if (test_bit(cpu->cpu_index, numa_info[i].node_cpu)) {
> + cpu->numa_node = i;
> + }
> + }
> +}
> +
> static void cpu_common_realizefn(DeviceState *dev, Error **errp)
> {
> CPUState *cpu = CPU(dev);
> @@ -347,6 +360,8 @@ static void cpu_common_realizefn(DeviceState *dev, Error
> **errp)
> cpu_resume(cpu);
> }
>
> + cpu_common_map_numa_node(cpu);
> +
> /* NOTE: latest generic point where the cpu is fully realized */
> trace_init_vcpu(cpu);
> }
> --
> 2.5.5
>
>
>
--
Eduardo
Re: [Qemu-devel] [PATCH 0/3] cpu: numa: Fix the mapping initialization of VCPUs and NUMA nodes, Igor Mammedov, 2017/01/18