From: "wangyanan (Y)" <wangyanan55@huawei.com>
To: Eduardo Habkost <ehabkost@redhat.com>,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
<qemu-devel@nongnu.org>, <qemu-arm@nongnu.org>,
<qemu-ppc@nongnu.org>, <qemu-s390x@nongnu.org>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Andrew Jones" <drjones@redhat.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Pierre Morel" <pmorel@linux.ibm.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
"Pankaj Gupta" <pankaj.gupta.linux@gmail.com>,
"Greg Kurz" <groug@kaod.org>,
wanghaibin.wang@huawei.com, "Thomas Huth" <thuth@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"David Gibson" <david@gibson.dropbear.id.au>
Subject: Re: [PATCH v9 00/16] machine: smp parsing fixes and improvement
Date: Fri, 17 Sep 2021 15:28:05 +0800 [thread overview]
Message-ID: <63616770-e88a-66ab-2bce-c2afecf67d64@huawei.com> (raw)
In-Reply-To: <20210910073025.16480-1-wangyanan55@huawei.com>
ping...
Hello maintainers,
Is this series mature enough to be accepted?
Now each one patch in this version has been Reviewd/Acked.
Considering that I have another patchset on list that depends on this
series,
and AFAIK there is another s390 patch series caring about the SMP changes
too, so I would appreciate your feedback. If there is still something to
fix I
can do the work in time. Sorry for bothering. 😉
Thanks,
Yanan
On 2021/9/10 15:30, Yanan Wang wrote:
> Hello,
>
> This is a new version v9 rebased on latest upstream commit bd662023e6.
> There are two more patches (#6 and #7) added to optimize qtest/numa-test
> to avoid affect from -smp parsing changes. Please review.
>
> This series has been tested locally on x86_64 and aarch64 machines,
> which are available for me.
>
> Description:
> This series introduces some fixes and improvement for the SMP parsing.
>
> 1) Specifying a CPU topology parameter as zero was implicitly allowed
> but undocumented before, while now it's explicitly deprecated.
>
> 2) To keep consistency, maxcpus is now uniformly used to calculate the
> omitted topology members.
>
> 3) Improve the error reporting.
>
> 4) It's also suggested that we should start to prefer cores over sockets
> over threads on the newer machine types, which will make the computed
> virtual topology more reflective of the real hardware. Related discussion
> can be found in [1].
> [1] https://lore.kernel.org/qemu-devel/YNIgInK00yNNI4Dy@redhat.com/
>
> 5) In order to reduce code duplication and ease the code maintenance,
> smp_parse() is converted into a generic enough parser for all arches,
> so that the arch-specific ones (e.g. pc_smp_parse) can be removed.
> It's also convenient to introduce more topology members to the generic
> parser in the future. Related discussions can be found in [2] and [3].
> [2] https://lore.kernel.org/qemu-devel/20210630115602.txmvmfe2jrzu7o67@gator.home/
> [3] https://lore.kernel.org/qemu-devel/YPFN83pKBt7F97kW@redhat.com/
>
> 6) A unit test for the SMP parsing is added. In the test, all possible
> collections of the topology parameters and the corresponding expected
> results are listed, including the valid and invalid ones. The preference
> of sockets over cores and the preference of cores over sockets, and the
> support of dies are also taken into consideration.
>
> ---
>
> Changelogs:
>
> v8->v9:
> - rebased on latest upstream commit bd662023e6, only updated patch 01/16
> to resolve code conflict, no change in the others.
> - added two more patches (06/16 and 07/16) to optimize qtest/numa-test.c
> to avoid affect from -smp parsing changes.
> - v8: https://lore.kernel.org/qemu-devel/20210902110330.18036-1-wangyanan55@huawei.com/
>
> v7->v8:
> - merge patch (hw: Add compat machines for 6.2) separately
> - rebased on upstream commit 079b1252e9
> - v7: https://lore.kernel.org/qemu-devel/20210823122804.7692-1-wangyanan55@huawei.com/
>
> v6->v7:
> - drop the two docs/about clean-up patches and they have been resent separately
> - v6: https://lore.kernel.org/qemu-devel/20210819031027.41104-1-wangyanan55@huawei.com/
>
> v5->v6:
> - deprecate "parameter=0" SMP configurations (patch #1 and #2 added)
> - rebased on upstream v6.1.0-rc4
> - v5: https://lore.kernel.org/qemu-devel/20210813023912.105880-1-wangyanan55@huawei.com/
>
> v4->v5:
> - refactor out the duplicated "threads == 0" case in patch #6 (Pankaj)
> - pick up more R-b tags from v4 (thanks very much for the review!)
> - v4: https://lore.kernel.org/qemu-devel/20210803080527.156556-1-wangyanan55@huawei.com/
>
> v3->v4:
> - put all the sanity check into the parser
> - refine the unit test and add it back to the series
> - add the R-b/A-b tags for the reviewed/acked patches
> - v3: https://lore.kernel.org/qemu-devel/20210728034848.75228-1-wangyanan55@huawei.com/
>
> v2->v3:
> - apply the calculation improvement to smp_parse and pc_smp_parse
> separately and then convert the finally improved parsers into a
> generic one, so that patches can be reviewed separately.
> - to ease review, drop the unit test part for a while until we have
> a good enough generic parser.
> - send the patch "machine: Disallow specifying topology parameters as zero"
> for 6.1 separately.
> - v2: https://lore.kernel.org/qemu-devel/20210719032043.25416-1-wangyanan55@huawei.com/
>
> v1->v2:
> - disallow "anything=0" in the smp configuration (Andrew)
> - make function smp_parse() a generic helper for all arches
> - improve the error reporting in the parser
> - start to prefer cores over sockets since 6.2 (Daniel)
> - add a unit test for the smp parsing (Daniel)
> - v1: https://lore.kernel.org/qemu-devel/20210702100739.13672-1-wangyanan55@huawei.com/
>
> ---
>
> Yanan Wang (16):
> machine: Deprecate "parameter=0" SMP configurations
> machine: Minor refactor/fix for the smp parsers
> machine: Uniformly use maxcpus to calculate the omitted parameters
> machine: Set the value of cpus to match maxcpus if it's omitted
> machine: Improve the error reporting of smp parsing
> qtest/numa-test: Use detailed -smp CLIs in pc_dynamic_cpu_cfg
> qtest/numa-test: Use detailed -smp CLI in test_def_cpu_split
> machine: Prefer cores over sockets in smp parsing since 6.2
> machine: Use ms instead of global current_machine in sanity-check
> machine: Tweak the order of topology members in struct CpuTopology
> machine: Make smp_parse generic enough for all arches
> machine: Remove smp_parse callback from MachineClass
> machine: Move smp_prefer_sockets to struct SMPCompatProps
> machine: Put all sanity-check in the generic SMP parser
> machine: Split out the smp parsing code
> tests/unit: Add a unit test for smp parsing
>
> MAINTAINERS | 2 +
> docs/about/deprecated.rst | 15 +
> hw/arm/virt.c | 1 +
> hw/core/machine-smp.c | 200 +++++++++
> hw/core/machine.c | 90 +---
> hw/core/meson.build | 1 +
> hw/i386/pc.c | 63 +--
> hw/i386/pc_piix.c | 1 +
> hw/i386/pc_q35.c | 1 +
> hw/ppc/spapr.c | 1 +
> hw/s390x/s390-virtio-ccw.c | 1 +
> include/hw/boards.h | 24 +-
> qapi/machine.json | 2 +-
> qemu-options.hx | 24 +-
> tests/qtest/numa-test.c | 6 +-
> tests/unit/meson.build | 1 +
> tests/unit/test-smp-parse.c | 866 ++++++++++++++++++++++++++++++++++++
> 17 files changed, 1134 insertions(+), 165 deletions(-)
> create mode 100644 hw/core/machine-smp.c
> create mode 100644 tests/unit/test-smp-parse.c
>
> --
> 2.23.0
>
> .
prev parent reply other threads:[~2021-09-17 7:29 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-10 7:30 [PATCH v9 00/16] machine: smp parsing fixes and improvement Yanan Wang
2021-09-10 7:30 ` [PATCH v9 01/16] machine: Deprecate "parameter=0" SMP configurations Yanan Wang
2021-09-10 7:30 ` [PATCH v9 02/16] machine: Minor refactor/fix for the smp parsers Yanan Wang
2021-09-10 7:30 ` [PATCH v9 03/16] machine: Uniformly use maxcpus to calculate the omitted parameters Yanan Wang
2021-09-10 7:30 ` [PATCH v9 04/16] machine: Set the value of cpus to match maxcpus if it's omitted Yanan Wang
2021-09-10 7:30 ` [PATCH v9 05/16] machine: Improve the error reporting of smp parsing Yanan Wang
2021-09-10 7:30 ` [PATCH v9 06/16] qtest/numa-test: Use detailed -smp CLIs in pc_dynamic_cpu_cfg Yanan Wang
2021-09-10 8:16 ` Andrew Jones
2021-09-10 7:30 ` [PATCH v9 07/16] qtest/numa-test: Use detailed -smp CLI in test_def_cpu_split Yanan Wang
2021-09-10 8:17 ` Andrew Jones
2021-09-17 7:33 ` wangyanan (Y)
2021-09-10 7:30 ` [PATCH v9 08/16] machine: Prefer cores over sockets in smp parsing since 6.2 Yanan Wang
2021-09-10 7:30 ` [PATCH v9 09/16] machine: Use ms instead of global current_machine in sanity-check Yanan Wang
2021-09-10 7:30 ` [PATCH v9 10/16] machine: Tweak the order of topology members in struct CpuTopology Yanan Wang
2021-09-10 7:30 ` [PATCH v9 11/16] machine: Make smp_parse generic enough for all arches Yanan Wang
2021-09-10 7:30 ` [PATCH v9 12/16] machine: Remove smp_parse callback from MachineClass Yanan Wang
2021-09-10 7:30 ` [PATCH v9 13/16] machine: Move smp_prefer_sockets to struct SMPCompatProps Yanan Wang
2021-09-10 7:30 ` [PATCH v9 14/16] machine: Put all sanity-check in the generic SMP parser Yanan Wang
2021-09-10 7:30 ` [PATCH v9 15/16] machine: Split out the smp parsing code Yanan Wang
2021-09-10 7:30 ` [PATCH v9 16/16] tests/unit: Add a unit test for smp parsing Yanan Wang
2021-09-17 7:28 ` wangyanan (Y) [this message]
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=63616770-e88a-66ab-2bce-c2afecf67d64@huawei.com \
--to=wangyanan55@huawei.com \
--cc=berrange@redhat.com \
--cc=cohuck@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=drjones@redhat.com \
--cc=ehabkost@redhat.com \
--cc=groug@kaod.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=pankaj.gupta.linux@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=pmorel@linux.ibm.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=thuth@redhat.com \
--cc=wanghaibin.wang@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).