[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] hw/i386: Expand the range of CPU topologies between smp a
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH v2] hw/i386: Expand the range of CPU topologies between smp and maxcpus |
Date: |
Tue, 27 Apr 2021 09:34:18 +0100 |
User-agent: |
Mutt/2.0.6 (2021-03-06) |
On Tue, Apr 27, 2021 at 10:13:01AM +0800, Like Xu wrote:
> On 2021/4/26 21:30, Daniel P. Berrangé wrote:
> > On Mon, Apr 26, 2021 at 10:08:52AM +0800, caodongli@kingsoft.com wrote:
> > > Change the criteria for the initial CPU topology and maxcpus, user can
> > > have more settings
> >
> > Can you provide a better explanation of why this is needed. What
> > valid usage scenario is blocked by the current check ?
> >
> > AFAICT, it partially reverts an intentional change done in several
> > years ago in :
> >
> >
> > commit bc1fb850a31468ac4976f3895f01a6d981e06d0a
> > Author: Igor Mammedov <imammedo@redhat.com>
> > Date: Thu Sep 13 13:06:01 2018 +0200
> >
> > vl.c deprecate incorrect CPUs topology
> > -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]
> >
> >
>
> Another helpful commit would be:
>
> commit c4332cd1dcf2964c23893ab4c0bf8d774e42a3cf
> Author: Igor Mammedov <imammedo@redhat.com>
> Date: Fri Sep 11 09:32:02 2020 -0400
>
> smp: drop support for deprecated (invalid topologies)
>
> 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.
>
>
> So is the following statement correct:
>
> When we explicitly set the topology, we must ensure that the combination
> (sockets/dies/cores/threads/maxcpus) is always valid. If we need hot plug
> testing, we can only use something like "-smp 1,maxcpus = 4" since 3.1.
Yes, you must set maxcpus if you want ability to hotplug further
CPUs later.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|