On Thu, Oct 18, 2018 at 05:03:39PM -0300, Eduardo Habkost wrote: > From: Igor Mammedov <imammedo@xxxxxxxxxx> > > -smp [cpus],sockets/cores/threads[,maxcpus] should describe topology > so that total number of logical CPUs [sockets * cores * threads] > would be equal to [maxcpus], however historically we didn't have > such check in QEMU and it is possible to start VM with an invalid > topology. > Deprecate invalid options combination so we can make sure that > the topology VM started with is always correct in the future. > Users with an invalid sockets/cores/threads/maxcpus values should > fix their CLI to make sure that > [sockets * cores * threads] == [maxcpus] > > Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx> > Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx> > Reviewed-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> > Message-Id: <1536836762-273036-2-git-send-email-imammedo@xxxxxxxxxx> > Reviewed-by: Eric Blake <eblake@xxxxxxxxxx> > Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> > --- > vl.c | 7 +++++++ > qemu-deprecated.texi | 12 ++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/vl.c b/vl.c > index 4e25c78bff..027d04c7ca 100644 > --- a/vl.c > +++ b/vl.c > @@ -1235,6 +1235,13 @@ static void smp_parse(QemuOpts *opts) > exit(1); > } > > + if (sockets * cores * threads != max_cpus) { > + warn_report("Invalid CPU topology deprecated: " > + "sockets (%u) * cores (%u) * threads (%u) " > + "!= maxcpus (%u)", > + sockets, cores, threads, max_cpus); > + } > + > smp_cpus = cpus; > smp_cores = cores; > smp_threads = threads; > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi > index 11b870c5c1..5d2d7a3588 100644 > --- a/qemu-deprecated.texi > +++ b/qemu-deprecated.texi > @@ -86,6 +86,18 @@ for these file types is 'host_cdrom' or 'host_device' as appropriate. > The @option{name} parameter of the @option{-net} option is a synonym > for the @option{id} parameter, which should now be used instead. > > +@subsection -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 @math{@var{n} <= @var{sockets} * @var{cores} * @var{threads} < @var{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. > + @math{@var{sockets} * @var{cores} * @var{threads} = @var{maxcpus}}. > + > @section QEMU Machine Protocol (QMP) commands > > @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0) -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list