From: Zhao Liu <zhao1.liu@linux.intel.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Eduardo Habkost" <eduardo@habkost.net>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Prasad Pandit" <ppandit@redhat.com>,
qemu-devel@nongnu.org, "Xiaoling Song" <xiaoling.song@intel.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
devel@lists.libvirt.org
Subject: Re: [PATCH 02/14] hw/core/machine-smp: Deprecate unsupported "parameter=1" SMP configurations
Date: Thu, 7 Mar 2024 15:07:13 +0800 [thread overview]
Message-ID: <ZelnodvaPVAfaxUM@intel.com> (raw)
In-Reply-To: <5aafc78f-8c2e-429c-9599-4d2e1bb184e9@redhat.com>
On Thu, Mar 07, 2024 at 07:22:10AM +0100, Thomas Huth wrote:
> Date: Thu, 7 Mar 2024 07:22:10 +0100
> From: Thomas Huth <thuth@redhat.com>
> Subject: Re: [PATCH 02/14] hw/core/machine-smp: Deprecate unsupported
> "parameter=1" SMP configurations
>
> On 06/03/2024 10.53, Zhao Liu wrote:
> > From: Zhao Liu <zhao1.liu@intel.com>
> >
> > Currentlt, it was allowed for users to specify the unsupported
>
> s/Currentlt/Currently/
>
> > topology parameter as "1". For example, x86 PC machine doesn't
> > support drawer/book/cluster topology levels, but user could specify
> > "-smp drawers=1,books=1,clusters=1".
> >
> > This is meaningless and confusing, so that the support for this kind of
> > configurations is marked depresated since 9.0. And report warning
>
> s/depresated/deprecated/
>
> > message for such case like:
> >
> > qemu-system-x86_64: warning: Deprecated CPU topology (considered invalid):
> > Unsupported clusters parameter mustn't be specified as 1
> > qemu-system-x86_64: warning: Deprecated CPU topology (considered invalid):
> > Unsupported books parameter mustn't be specified as 1
> > qemu-system-x86_64: warning: Deprecated CPU topology (considered invalid):
> > Unsupported drawers parameter mustn't be specified as 1
> >
> > Users have to ensure that all the topology members described with -smp
> > are supported by the target machine.
> >
> > Cc: devel@lists.libvirt.org
> > Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
> > ---
> > docs/about/deprecated.rst | 14 +++++++++
> > hw/core/machine-smp.c | 63 +++++++++++++++++++++++++++++----------
> > 2 files changed, 61 insertions(+), 16 deletions(-)
> >
> > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> > index 872974640252..2e782e83e952 100644
> > --- a/docs/about/deprecated.rst
> > +++ b/docs/about/deprecated.rst
> > @@ -47,6 +47,20 @@ as short-form boolean values, and passed to plugins as ``arg_name=on``.
> > However, short-form booleans are deprecated and full explicit ``arg_name=on``
> > form is preferred.
> > +``-smp`` (Unsopported "parameter=1" SMP configurations) (since 9.0)
>
> s/Unsopported/Unsupported/
>
> > +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> > +
> > +Specified CPU topology parameters must be supported by the machine.
> > +
> > +In the SMP configuration, users should provide the CPU topology parameters that
> > +are supported by the target machine.
> > +
> > +However, historically it was allowed for users to specify the unsupported
> > +topology parameter as "1", which is meaningless. So support for this kind of
> > +configurations (e.g. -smp drawers=1,books=1,clusters=1 for x86 PC machine) is
> > +marked depresated since 9.0, users have to ensure that all the topology members
>
> s/depresated/deprecated/
>
> > +described with -smp are supported by the target machine.
> > +
> > QEMU Machine Protocol (QMP) commands
> > ------------------------------------
> > diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c
> > index 96533886b14e..50a5a40dbc3d 100644
> > --- a/hw/core/machine-smp.c
> > +++ b/hw/core/machine-smp.c
> > @@ -112,30 +112,61 @@ void machine_parse_smp_config(MachineState *ms,
> > /*
> > * If not supported by the machine, a topology parameter must be
> > - * omitted or specified equal to 1.
> > + * omitted.
> > */
> > - if (!mc->smp_props.dies_supported && dies > 1) {
> > - error_setg(errp, "dies not supported by this machine's CPU topology");
> > - return;
> > - }
> > - if (!mc->smp_props.clusters_supported && clusters > 1) {
> > - error_setg(errp, "clusters not supported by this machine's CPU topology");
> > - return;
> > + if (!mc->smp_props.clusters_supported && config->has_clusters) {
> > + if (config->clusters > 1) {
> > + error_setg(errp, "clusters not supported by this "
> > + "machine's CPU topology");
> > + return;
> > + } else {
> > + /* Here clusters only equals 1 since we've checked zero case. */
> > + warn_report("Deprecated CPU topology (considered invalid): "
> > + "Unsupported clusters parameter mustn't be "
> > + "specified as 1");
> > + }
> > }
> > + clusters = clusters > 0 ? clusters : 1;
> > + if (!mc->smp_props.dies_supported && config->has_dies) {
> > + if (config->dies > 1) {
> > + error_setg(errp, "dies not supported by this "
> > + "machine's CPU topology");
> > + return;
> > + } else {
> > + /* Here dies only equals 1 since we've checked zero case. */
> > + warn_report("Deprecated CPU topology (considered invalid): "
> > + "Unsupported dies parameter mustn't be "
> > + "specified as 1");
> > + }
> > + }
> > dies = dies > 0 ? dies : 1;
> > - clusters = clusters > 0 ? clusters : 1;
> > - if (!mc->smp_props.books_supported && books > 1) {
> > - error_setg(errp, "books not supported by this machine's CPU topology");
> > - return;
> > + if (!mc->smp_props.books_supported && config->has_books) {
> > + if (config->books > 1) {
> > + error_setg(errp, "books not supported by this "
> > + "machine's CPU topology");
> > + return;
> > + } else {
> > + /* Here books only equals 1 since we've checked zero case. */
> > + warn_report("Deprecated CPU topology (considered invalid): "
> > + "Unsupported books parameter mustn't be "
> > + "specified as 1");
> > + }
> > }
> > books = books > 0 ? books : 1;
> > - if (!mc->smp_props.drawers_supported && drawers > 1) {
> > - error_setg(errp,
> > - "drawers not supported by this machine's CPU topology");
> > - return;
> > + if (!mc->smp_props.drawers_supported && config->has_drawers) {
> > + if (config->drawers > 1) {
> > + error_setg(errp, "drawers not supported by this "
> > + "machine's CPU topology");
> > + return;
> > + } else {
> > + /* Here drawers only equals 1 since we've checked zero case. */
> > + warn_report("Deprecated CPU topology (considered invalid): "
> > + "Unsupported drawers parameter mustn't be "
> > + "specified as 1");
> > + }
> > }
> > drawers = drawers > 0 ? drawers : 1;
>
> Apart from the typos, patch looks fine. I recommend to run "checkpath.pl"
> with the --codespell parameter, that helps to avoid those.
>
Oops...I didn't realize there were so many typos.
Maybe I'm relying too much on --codespell ;-), and these typos aren't in
the default dictionary used by --codespell so I didn't check them
before.
I'll refresh a new version (at Friday) for these typos.
Thanks,
Zhao
next prev parent reply other threads:[~2024-03-07 6:54 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 9:53 [PATCH 00/14] Cleanup on SMP and its test Zhao Liu
2024-03-06 9:53 ` [PATCH 01/14] hw/core/machine-smp: Remove deprecated "parameter=0" SMP configurations Zhao Liu
2024-03-06 9:53 ` [PATCH 02/14] hw/core/machine-smp: Deprecate unsupported "parameter=1" " Zhao Liu
2024-03-07 6:22 ` Thomas Huth
2024-03-07 7:07 ` Zhao Liu [this message]
2024-03-06 9:53 ` [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config() Zhao Liu
2024-03-08 13:20 ` Thomas Huth
2024-03-08 15:33 ` Zhao Liu
2024-03-10 11:55 ` Prasad Pandit
2024-03-11 5:20 ` Zhao Liu
2024-03-13 10:52 ` Prasad Pandit
2024-03-18 8:06 ` Zhao Liu
2024-03-18 11:18 ` Prasad Pandit
2024-03-06 9:53 ` [PATCH 04/14] hw/core/machine-smp: Calculate total CPUs once " Zhao Liu
2024-03-06 20:56 ` Philippe Mathieu-Daudé
2024-03-06 9:53 ` [PATCH 05/14] tests/unit/test-smp-parse: Drop the unsupported "dies=1" case Zhao Liu
2024-03-08 13:22 ` Thomas Huth
2024-03-06 9:53 ` [PATCH 06/14] tests/unit/test-smp-parse: Use CPU number macros in invalid topology case Zhao Liu
2024-03-06 9:54 ` [PATCH 07/14] tests/unit/test-smp-parse: Bump max_cpus to 4096 Zhao Liu
2024-03-07 6:01 ` Thomas Huth
2024-03-07 7:03 ` Zhao Liu
2024-03-06 9:54 ` [PATCH 08/14] tests/unit/test-smp-parse: Make test cases aware of the book/drawer Zhao Liu
2024-03-06 9:54 ` [PATCH 09/14] tests/unit/test-smp-parse: Test "books" parameter in -smp Zhao Liu
2024-03-06 9:54 ` [PATCH 10/14] tests/unit/test-smp-parse: Test "drawers" " Zhao Liu
2024-03-06 9:54 ` [PATCH 11/14] tests/unit/test-smp-parse: Test "drawers" and "books" combination case Zhao Liu
2024-03-07 6:07 ` Thomas Huth
2024-03-06 9:54 ` [PATCH 12/14] tests/unit/test-smp-parse: Test the full 7-levels topology hierarchy Zhao Liu
2024-03-06 9:54 ` [PATCH 13/14] tests/unit/test-smp-parse: Test smp_props.has_clusters Zhao Liu
2024-03-06 9:54 ` [PATCH 14/14] tests/unit/test-smp-parse: Test "parameter=0" SMP configurations Zhao Liu
2024-03-07 6:11 ` Thomas Huth
2024-03-06 21:07 ` [PATCH 00/14] Cleanup on SMP and its test Philippe Mathieu-Daudé
2024-03-07 7:25 ` Zhao Liu
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=ZelnodvaPVAfaxUM@intel.com \
--to=zhao1.liu@linux.intel.com \
--cc=berrange@redhat.com \
--cc=devel@lists.libvirt.org \
--cc=eduardo@habkost.net \
--cc=imammedo@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=philmd@linaro.org \
--cc=ppandit@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=xiaoling.song@intel.com \
--cc=zhao1.liu@intel.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.