On Wed, 23 Sep 2020 05:46:50 -0400 Igor Mammedov <imamm...@redhat.com> 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. ignore this stowaway, it's not part of the series > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > --- > 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 808c334fe7..fb95d2ecc4 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) > '''''''''''''''''''''''''' > > @@ -642,6 +629,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 2af660c55e..53e21a186d 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -748,23 +748,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;