From: Igor Mammedov <imammedo@redhat.com>
To: Gavin Shan <gshan@redhat.com>
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org, lvivier@redhat.com,
eduardo@habkost.net, thuth@redhat.com, berrange@redhat.com,
shan.gavin@gmail.com, peter.maydell@linaro.org,
Jonathan.Cameron@Huawei.com, zhenyzha@redhat.com, mst@redhat.com,
armbru@redhat.com, ani@anisinha.ca, pbonzini@redhat.com,
drjones@redhat.com, eblake@redhat.com, f4bug@amsat.org,
wangyanan55@huawei.com
Subject: Re: [PATCH v8 3/5] hw/arm/virt: Consider SMP configuration in CPU topology
Date: Tue, 3 May 2022 10:56:00 +0200 [thread overview]
Message-ID: <20220503105600.112234e2@redhat.com> (raw)
In-Reply-To: <20220425032802.365061-4-gshan@redhat.com>
On Mon, 25 Apr 2022 11:28:00 +0800
Gavin Shan <gshan@redhat.com> wrote:
> Currently, the SMP configuration isn't considered when the CPU
> topology is populated. In this case, it's impossible to provide
> the default CPU-to-NUMA mapping or association based on the socket
> ID of the given CPU.
>
> This takes account of SMP configuration when the CPU topology
> is populated. The die ID for the given CPU isn't assigned since
> it's not supported on arm/virt machine. Besides, the used SMP
> configuration in qtest/numa-test/aarch64_numa_cpu() is corrcted
> to avoid testing failure
>
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> Reviewed-by: Yanan Wang <wangyanan55@huawei.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
> ---
> hw/arm/virt.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 5bdd98e4a1..0fd7f9a6a1 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -2560,6 +2560,7 @@ static const CPUArchIdList *virt_possible_cpu_arch_ids(MachineState *ms)
> int n;
> unsigned int max_cpus = ms->smp.max_cpus;
> VirtMachineState *vms = VIRT_MACHINE(ms);
> + MachineClass *mc = MACHINE_GET_CLASS(vms);
>
> if (ms->possible_cpus) {
> assert(ms->possible_cpus->len == max_cpus);
> @@ -2573,8 +2574,20 @@ static const CPUArchIdList *virt_possible_cpu_arch_ids(MachineState *ms)
> ms->possible_cpus->cpus[n].type = ms->cpu_type;
> ms->possible_cpus->cpus[n].arch_id =
> virt_cpu_mp_affinity(vms, n);
> +
> + assert(!mc->smp_props.dies_supported);
> + ms->possible_cpus->cpus[n].props.has_socket_id = true;
> + ms->possible_cpus->cpus[n].props.socket_id =
> + n / (ms->smp.clusters * ms->smp.cores * ms->smp.threads);
> + ms->possible_cpus->cpus[n].props.has_cluster_id = true;
> + ms->possible_cpus->cpus[n].props.cluster_id =
> + (n / (ms->smp.cores * ms->smp.threads)) % ms->smp.clusters;
> + ms->possible_cpus->cpus[n].props.has_core_id = true;
> + ms->possible_cpus->cpus[n].props.core_id =
> + (n / ms->smp.threads) % ms->smp.cores;
> ms->possible_cpus->cpus[n].props.has_thread_id = true;
> - ms->possible_cpus->cpus[n].props.thread_id = n;
> + ms->possible_cpus->cpus[n].props.thread_id =
> + n % ms->smp.threads;
> }
> return ms->possible_cpus;
> }
next prev parent reply other threads:[~2022-05-03 8:56 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-25 3:27 [PATCH v8 0/5] hw/arm/virt: Fix CPU's default NUMA node ID Gavin Shan
2022-04-25 3:27 ` [PATCH v8 1/5] qapi/machine.json: Add cluster-id Gavin Shan
2022-05-03 8:54 ` Igor Mammedov
2022-04-25 3:27 ` [PATCH v8 2/5] qtest/numa-test: Specify CPU topology in aarch64_numa_cpu() Gavin Shan
2022-05-02 8:52 ` Igor Mammedov
2022-05-02 10:07 ` Gavin Shan
2022-05-03 8:54 ` Igor Mammedov
2022-05-03 13:47 ` Gavin Shan
2022-04-25 3:28 ` [PATCH v8 3/5] hw/arm/virt: Consider SMP configuration in CPU topology Gavin Shan
2022-05-03 8:56 ` Igor Mammedov [this message]
2022-04-25 3:28 ` [PATCH v8 4/5] hw/arm/virt: Fix CPU's default NUMA node ID Gavin Shan
2022-04-25 3:28 ` [PATCH v8 5/5] hw/acpi/aml-build: Use existing CPU topology to build PPTT table Gavin Shan
2022-05-02 7:43 ` [PATCH v8 0/5] hw/arm/virt: Fix CPU's default NUMA node ID Gavin Shan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220503105600.112234e2@redhat.com \
--to=imammedo@redhat.com \
--cc=Jonathan.Cameron@Huawei.com \
--cc=ani@anisinha.ca \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=drjones@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=f4bug@amsat.org \
--cc=gshan@redhat.com \
--cc=lvivier@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shan.gavin@gmail.com \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=zhenyzha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.