qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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
>
>
> .


  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).