[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 4/6] qtest/numa-test: Correct CPU and NUMA association in
From: |
Igor Mammedov |
Subject: |
Re: [PATCH v9 4/6] qtest/numa-test: Correct CPU and NUMA association in aarch64_numa_cpu() |
Date: |
Wed, 4 May 2022 15:46:37 +0200 |
On Tue, 3 May 2022 22:03:02 +0800
Gavin Shan <gshan@redhat.com> wrote:
> In aarch64_numa_cpu(), the CPU and NUMA association is something
> like below. Two threads in the same core/cluster/socket are
> associated with two individual NUMA nodes, which is unreal as
> Igor Mammedov mentioned. We don't expect the association to break
> NUMA-to-socket boundary, which matches with the real world.
>
> NUMA-node socket cluster core thread
> ------------------------------------------
> 0 0 0 0 0
> 1 0 0 0 1
>
> This corrects the topology for CPUs and their association with
> NUMA nodes. After this patch is applied, the CPU and NUMA
> association becomes something like below, which looks real.
> Besides, socket/cluster/core/thread IDs are all checked when
> the NUMA node IDs are verified. It helps to check if the CPU
> topology is properly populated or not.
>
> NUMA-node socket cluster core thread
> ------------------------------------------
> 0 1 0 0 0
> 1 0 0 0 0
I'd place 'socket 1' on node 0, so it wouldn't look odd.
But it probably doesn't matter, so
Acked-by: Igor Mammedov <imammedo@redhat.com>
> Suggested-by: Igor Mammedov <imammedo@redhat.com>
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> ---
> tests/qtest/numa-test.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c
> index aeda8c774c..32e35daaae 100644
> --- a/tests/qtest/numa-test.c
> +++ b/tests/qtest/numa-test.c
> @@ -224,17 +224,17 @@ static void aarch64_numa_cpu(const void *data)
> g_autofree char *cli = NULL;
>
> cli = make_cli(data, "-machine "
> - "smp.cpus=2,smp.sockets=1,smp.clusters=1,smp.cores=1,smp.threads=2 "
> + "smp.cpus=2,smp.sockets=2,smp.clusters=1,smp.cores=1,smp.threads=1 "
> "-numa node,nodeid=0,memdev=ram -numa node,nodeid=1 "
> - "-numa cpu,node-id=1,thread-id=0 "
> - "-numa cpu,node-id=0,thread-id=1");
> + "-numa cpu,node-id=0,socket-id=1,cluster-id=0,core-id=0,thread-id=0 "
> + "-numa
> cpu,node-id=1,socket-id=0,cluster-id=0,core-id=0,thread-id=0");
> qts = qtest_init(cli);
> cpus = get_cpus(qts, &resp);
> g_assert(cpus);
>
> while ((e = qlist_pop(cpus))) {
> QDict *cpu, *props;
> - int64_t thread, node;
> + int64_t socket, cluster, core, thread, node;
>
> cpu = qobject_to(QDict, e);
> g_assert(qdict_haskey(cpu, "props"));
> @@ -242,12 +242,18 @@ static void aarch64_numa_cpu(const void *data)
>
> g_assert(qdict_haskey(props, "node-id"));
> node = qdict_get_int(props, "node-id");
> + g_assert(qdict_haskey(props, "socket-id"));
> + socket = qdict_get_int(props, "socket-id");
> + g_assert(qdict_haskey(props, "cluster-id"));
> + cluster = qdict_get_int(props, "cluster-id");
> + g_assert(qdict_haskey(props, "core-id"));
> + core = qdict_get_int(props, "core-id");
> g_assert(qdict_haskey(props, "thread-id"));
> thread = qdict_get_int(props, "thread-id");
>
> - if (thread == 0) {
> + if (socket == 0 && cluster == 0 && core == 0 && thread == 0) {
> g_assert_cmpint(node, ==, 1);
> - } else if (thread == 1) {
> + } else if (socket == 1 && cluster == 0 && core == 0 && thread == 0) {
> g_assert_cmpint(node, ==, 0);
> } else {
> g_assert(false);
- [PATCH v9 0/6] hw/arm/virt: Fix CPU's default NUMA node ID, Gavin Shan, 2022/05/03
- [PATCH v9 2/6] qtest/numa-test: Specify CPU topology in aarch64_numa_cpu(), Gavin Shan, 2022/05/03
- [PATCH v9 3/6] hw/arm/virt: Consider SMP configuration in CPU topology, Gavin Shan, 2022/05/03
- [PATCH v9 6/6] hw/acpi/aml-build: Use existing CPU topology to build PPTT table, Gavin Shan, 2022/05/03
- [PATCH v9 5/6] hw/arm/virt: Fix CPU's default NUMA node ID, Gavin Shan, 2022/05/03
- [PATCH v9 1/6] qapi/machine.json: Add cluster-id, Gavin Shan, 2022/05/03
- [PATCH v9 4/6] qtest/numa-test: Correct CPU and NUMA association in aarch64_numa_cpu(), Gavin Shan, 2022/05/03
- Re: [PATCH v9 4/6] qtest/numa-test: Correct CPU and NUMA association in aarch64_numa_cpu(),
Igor Mammedov <=
- Re: [PATCH v9 0/6] hw/arm/virt: Fix CPU's default NUMA node ID, Gavin Shan, 2022/05/08