qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, pbonzini@redhat.com
Cc: libvir-list@redhat.com, rth@twiddle.net, qemu-devel@nongnu.org,
	ehabkost@redhat.com
Subject: Re: [PATCH] smp: drop support for deprecated (invalid topologies)
Date: Mon, 14 Sep 2020 09:37:20 +0200	[thread overview]
Message-ID: <20200914093720.6c3583c7@redhat.com> (raw)
In-Reply-To: <20200911110407-mutt-send-email-mst@kernel.org>

On Fri, 11 Sep 2020 11:04:47 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Fri, Sep 11, 2020 at 09:32:02AM -0400, Igor Mammedov wrote:
> > it's was deprecated since 3.1
> > 
> > Support for invalid topologies is removed, the user must ensure
> > that topologies described with -smp include all possible cpus,
> > i.e. (sockets * cores * threads) == maxcpus or QEMU will
> > exit with error.
> > 
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>  
> 
> Acked-by: 
> 
> memory tree I guess?

It would be better for Paolo to take it since he has
queued numa deprecations, due to context confilict in
deprecated.rst.

Paolo,
can you queue this patch as well?

> 
> > ---
> >  docs/system/deprecated.rst | 26 +++++++++++++-------------
> >  hw/core/machine.c          | 16 ++++------------
> >  hw/i386/pc.c               | 16 ++++------------
> >  3 files changed, 21 insertions(+), 37 deletions(-)
> > 
> > diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> > index 122717cfee..d737728fab 100644
> > --- a/docs/system/deprecated.rst
> > +++ b/docs/system/deprecated.rst
> > @@ -47,19 +47,6 @@ The 'file' driver for drives is no longer appropriate for character or host
> >  devices and will only accept regular files (S_IFREG). The correct driver
> >  for these file types is 'host_cdrom' or 'host_device' as appropriate.
> >  
> > -``-smp`` (invalid topologies) (since 3.1)
> > -'''''''''''''''''''''''''''''''''''''''''
> > -
> > -CPU topology properties should describe whole machine topology including
> > -possible CPUs.
> > -
> > -However, historically it was possible to start QEMU with an incorrect topology
> > -where *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
> > -which could lead to an incorrect topology enumeration by the guest.
> > -Support for invalid topologies will be removed, the user must ensure
> > -topologies described with -smp include all possible cpus, i.e.
> > -*sockets* * *cores* * *threads* = *maxcpus*.
> > -
> >  ``-vnc acl`` (since 4.0.0)
> >  ''''''''''''''''''''''''''
> >  
> > @@ -618,6 +605,19 @@ New machine versions (since 5.1) will not accept the option but it will still
> >  work with old machine types. User can check the QAPI schema to see if the legacy
> >  option is supported by looking at MachineInfo::numa-mem-supported property.
> >  
> > +``-smp`` (invalid topologies) (removed 5.2)
> > +'''''''''''''''''''''''''''''''''''''''''''
> > +
> > +CPU topology properties should describe whole machine topology including
> > +possible CPUs.
> > +
> > +However, historically it was possible to start QEMU with an incorrect topology
> > +where *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
> > +which could lead to an incorrect topology enumeration by the guest.
> > +Support for invalid topologies is removed, the user must ensure
> > +topologies described with -smp include all possible cpus, i.e.
> > +*sockets* * *cores* * *threads* = *maxcpus*.
> > +
> >  Block devices
> >  -------------
> >  
> > diff --git a/hw/core/machine.c b/hw/core/machine.c
> > index ea26d61237..09aee4ea52 100644
> > --- a/hw/core/machine.c
> > +++ b/hw/core/machine.c
> > @@ -754,23 +754,15 @@ static void smp_parse(MachineState *ms, QemuOpts *opts)
> >              exit(1);
> >          }
> >  
> > -        if (sockets * cores * threads > ms->smp.max_cpus) {
> > -            error_report("cpu topology: "
> > -                         "sockets (%u) * cores (%u) * threads (%u) > "
> > -                         "maxcpus (%u)",
> > +        if (sockets * cores * threads != ms->smp.max_cpus) {
> > +            error_report("Invalid CPU topology: "
> > +                         "sockets (%u) * cores (%u) * threads (%u) "
> > +                         "!= maxcpus (%u)",
> >                           sockets, cores, threads,
> >                           ms->smp.max_cpus);
> >              exit(1);
> >          }
> >  
> > -        if (sockets * cores * threads != ms->smp.max_cpus) {
> > -            warn_report("Invalid CPU topology deprecated: "
> > -                        "sockets (%u) * cores (%u) * threads (%u) "
> > -                        "!= maxcpus (%u)",
> > -                        sockets, cores, threads,
> > -                        ms->smp.max_cpus);
> > -        }
> > -
> >          ms->smp.cpus = cpus;
> >          ms->smp.cores = cores;
> >          ms->smp.threads = threads;
> > diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> > index d071da787b..fbde6b04e6 100644
> > --- a/hw/i386/pc.c
> > +++ b/hw/i386/pc.c
> > @@ -746,23 +746,15 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts)
> >              exit(1);
> >          }
> >  
> > -        if (sockets * dies * cores * threads > ms->smp.max_cpus) {
> > -            error_report("cpu topology: "
> > -                         "sockets (%u) * dies (%u) * cores (%u) * threads (%u) > "
> > -                         "maxcpus (%u)",
> > +        if (sockets * dies * cores * threads != ms->smp.max_cpus) {
> > +            error_report("Invalid CPU topology deprecated: "
> > +                         "sockets (%u) * dies (%u) * cores (%u) * threads (%u) "
> > +                         "!= maxcpus (%u)",
> >                           sockets, dies, cores, threads,
> >                           ms->smp.max_cpus);
> >              exit(1);
> >          }
> >  
> > -        if (sockets * dies * cores * threads != ms->smp.max_cpus) {
> > -            warn_report("Invalid CPU topology deprecated: "
> > -                        "sockets (%u) * dies (%u) * cores (%u) * threads (%u) "
> > -                        "!= maxcpus (%u)",
> > -                        sockets, dies, cores, threads,
> > -                        ms->smp.max_cpus);
> > -        }
> > -
> >          ms->smp.cpus = cpus;
> >          ms->smp.cores = cores;
> >          ms->smp.threads = threads;
> > -- 
> > 2.27.0  
> 



  reply	other threads:[~2020-09-14  7:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11 13:32 [PATCH] smp: drop support for deprecated (invalid topologies) Igor Mammedov
2020-09-11 15:04 ` Michael S. Tsirkin
2020-09-14  7:37   ` Igor Mammedov [this message]
2020-09-18 20:57     ` Eduardo Habkost
2020-09-20 12:10       ` Paolo Bonzini

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=20200914093720.6c3583c7@redhat.com \
    --to=imammedo@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).