From: "wangyanan (Y)" <wangyanan55@huawei.com>
To: Andrew Jones <drjones@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
"Michael S . Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Shannon Zhao <shannon.zhaosl@gmail.com>,
Igor Mammedov <imammedo@redhat.com>,
qemu-arm@nongnu.org, Alistair Francis <alistair.francis@wdc.com>,
prime.zeng@hisilicon.com, yangyicong@huawei.com,
yuzenghui@huawei.com, wanghaibin.wang@huawei.com,
zhukeqian1@huawei.com, Jiajie Li <lijiajie11@huawei.com>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [RFC PATCH v2 6/6] hw/arm/virt: Replace smp_parse with one that prefers cores
Date: Wed, 28 Apr 2021 17:36:43 +0800 [thread overview]
Message-ID: <f3d5172b-13a5-a8d3-8cdb-03788e43fc52@huawei.com> (raw)
In-Reply-To: <20210427145856.5qaetgzdl6ovnoni@gator.home>
On 2021/4/27 22:58, Andrew Jones wrote:
> On Tue, Apr 13, 2021 at 04:07:45PM +0800, Yanan Wang wrote:
>> From: Andrew Jones <drjones@redhat.com>
>>
>> The virt machine type has never used the CPU topology parameters, other
>> than number of online CPUs and max CPUs. When choosing how to allocate
>> those CPUs the default has been to assume cores. In preparation for
>> using the other CPU topology parameters let's use an smp_parse that
>> prefers cores over sockets. We can also enforce the topology matches
>> max_cpus check because we have no legacy to preserve.
>>
>> Signed-off-by: Andrew Jones <drjones@redhat.com>
>> Signed-off-by: Yanan Wang <wangyanan55@huawei.com>
>> ---
>> hw/arm/virt.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 76 insertions(+)
> Thanks, this patch matches [1]. Of course, I've always considered this
> patch to be something of an RFC, though. Is there any harm in defaulting
> to sockets over cores? If not, I wonder if we shouldn't just leave the
> default as it is to avoid a mach-virt specific smp parser. The "no
> topology" compat variable will keep existing machine types from switching
> from cores to sockets, so we don't need to worry about that.
>
> [1] https://github.com/rhdrjones/qemu/commit/c0670b1bccb4d08c7cf7c6957cc8878a2af131dd
For CPU topology population, ARM64 kernel will firstly try to parse ACPI
PPTT table
and then DT in function init_cpu_topology(), if failed it will rely on
the MPIDR value
in function store_cpu_topology(). But MPIDR can not be trusted and is
ignored for
any topology deduction. And instead, topology of one single socket with
multiple
cores is made, which can not represent the real underlying system topology.
I think this is the reason why VMs will in default prefer cores over
sockets if no
topology description is provided.
With the feature introduced by this series, guest kernel can
successfully get cpu
information from one of the two (ACPI or DT) for topology population.
According to above analysis, IMO, whether the parsing logic is "sockets
over cores" or
"cores over sockets", it just provide different topology information and
consequently
different scheduling performance. Apart from this, I think there will
not any harm or
problems caused.
So maybe it's fine that we just use the arch-neutral parsing logic?
How do you think ?
Thanks,
Yanan
> Thanks,
> drew
>
>
> .
next prev parent reply other threads:[~2021-04-28 9:38 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-13 8:07 [RFC PATCH v2 0/6] hw/arm/virt: Introduce cpu topology support Yanan Wang
2021-04-13 8:07 ` [RFC PATCH v2 1/6] device_tree: Add qemu_fdt_add_path Yanan Wang
2021-04-16 4:52 ` David Gibson
2021-04-17 2:36 ` wangyanan (Y)
2021-04-19 1:13 ` David Gibson
2021-04-19 7:02 ` wangyanan (Y)
2021-04-13 8:07 ` [RFC PATCH v2 2/6] hw/arm/virt: DT: Add cpu-map Yanan Wang
2021-04-27 9:47 ` Philippe Mathieu-Daudé
2021-04-27 10:04 ` Andrew Jones
2021-04-27 12:36 ` Philippe Mathieu-Daudé
2021-04-28 6:36 ` wangyanan (Y)
2021-05-13 6:58 ` Andrew Jones
2021-05-13 7:15 ` wangyanan (Y)
2021-04-13 8:07 ` [RFC PATCH v2 3/6] hw/arm/virt-acpi-build: Distinguish possible and present cpus Yanan Wang
2021-04-27 13:18 ` Andrew Jones
2021-04-28 6:42 ` wangyanan (Y)
2021-04-27 14:50 ` Andrew Jones
2021-04-28 6:47 ` wangyanan (Y)
2021-04-13 8:07 ` [RFC PATCH v2 4/6] hw/acpi/aml-build: Add processor hierarchy node structure Yanan Wang
2021-04-27 13:37 ` Andrew Jones
2021-04-28 6:59 ` wangyanan (Y)
2021-04-13 8:07 ` [RFC PATCH v2 5/6] hw/arm/virt-acpi-build: Add PPTT table Yanan Wang
2021-04-27 14:16 ` Andrew Jones
2021-04-28 7:30 ` wangyanan (Y)
2021-05-13 5:10 ` wangyanan (Y)
2021-05-13 6:55 ` Andrew Jones
2021-05-18 7:17 ` Salil Mehta
2021-05-18 7:42 ` Andrew Jones
2021-05-18 18:34 ` Salil Mehta
2021-05-18 19:05 ` Andrew Jones
2021-05-18 19:22 ` Salil Mehta
2021-05-19 3:18 ` wangyanan (Y)
2021-05-19 7:54 ` Salil Mehta
2021-05-19 8:15 ` Andrew Jones
2021-05-19 8:42 ` wangyanan (Y)
2021-05-19 10:00 ` Salil Mehta
2021-05-19 8:27 ` Andrew Jones
2021-05-19 13:26 ` wangyanan (Y)
2021-05-19 13:40 ` wangyanan (Y)
2021-05-18 9:16 ` wangyanan (Y)
2021-04-13 8:07 ` [RFC PATCH v2 6/6] hw/arm/virt: Replace smp_parse with one that prefers cores Yanan Wang
2021-04-27 14:58 ` Andrew Jones
2021-04-28 8:04 ` wangyanan (Y)
2021-04-28 9:36 ` wangyanan (Y) [this message]
2021-04-28 10:13 ` Andrew Jones
2021-04-29 2:21 ` wangyanan (Y)
2021-04-21 7:40 ` [RFC PATCH v2 0/6] hw/arm/virt: Introduce cpu topology support wangyanan (Y)
2021-04-21 9:31 ` wangyanan (Y)
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=f3d5172b-13a5-a8d3-8cdb-03788e43fc52@huawei.com \
--to=wangyanan55@huawei.com \
--cc=alistair.francis@wdc.com \
--cc=david@gibson.dropbear.id.au \
--cc=drjones@redhat.com \
--cc=imammedo@redhat.com \
--cc=lijiajie11@huawei.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=prime.zeng@hisilicon.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhaosl@gmail.com \
--cc=wanghaibin.wang@huawei.com \
--cc=yangyicong@huawei.com \
--cc=yuzenghui@huawei.com \
--cc=zhukeqian1@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).