[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology
From: |
Andrew Jones |
Subject: |
Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology |
Date: |
Tue, 4 Sep 2018 17:10:22 +0200 |
User-agent: |
NeoMutt/20180716 |
On Tue, Sep 04, 2018 at 03:22:35PM +0200, Igor Mammedov wrote:
> -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 <address@hidden>
> ---
> v5:
> - extend deprecation doc, adding that maxcpus should be multiple of
> present on CLI [sockets/cores/threads] options
> (Eduardo Habkost <address@hidden>)
> v4:
> - missed dot comment, fix it with s/./,/ (Andrew Jones <address@hidden>)
> v3:
> - more spelling fixes (Andrew Jones <address@hidden>)
> - place deprecation check after (sockets * cores * threads > max_cpus) check
> (Eduardo Habkost <address@hidden>)
> v2:
> - spelling&&co fixes (Andrew Jones <address@hidden>)
> ---
> qemu-deprecated.texi | 19 +++++++++++++++++++
> vl.c | 7 +++++++
> 2 files changed, 26 insertions(+)
>
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 87212b6..827c3ce 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -159,6 +159,25 @@ 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.
>
> address@hidden -smp X,[socket=a,core=b,thread=c],maxcpus=Y (since 3.1)
sockets,cores,threads -- they should all be plural
> +
> +CPU topology properties should describe whole machine topology including
> +possible CPUs, but historically it was possible to start QEMU with
> +an incorrect topology where
> + sockets * cores * threads >= X && X < 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
> +Note: it's assumed that maxcpus value must be multiple of the topology
> +options present on command line to avoid creating an invalid topology.
> +If maxcpus isn't be multiple of present topology options then the condition
> +(sockets * cores * threads == maxcpus) can't be satisfied and it will
> +trigger deprecation warning which later will be converted to a error.
> +If you get deprecation warning it's recommended to explicitly specify
> +a correct topology to make warning go away and ensure that it will
> +continue working in the future.
> +
> @section QEMU Machine Protocol (QMP) commands
>
> @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
> diff --git a/vl.c b/vl.c
> index 5ba06ad..7fd700e 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1246,6 +1246,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;
> --
> 2.7.4
>
>
Otherwise
Reviewed-by: Andrew Jones <address@hidden>
- [Qemu-devel] [PATCH v5 0/2] deprecate incorrect CPUs topology, Igor Mammedov, 2018/09/04
- [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Igor Mammedov, 2018/09/04
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology,
Andrew Jones <=
- [Qemu-devel] [PATCH v6 1/2] vl.c deprecate incorrect CPUs topology, Igor Mammedov, 2018/09/04
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Eduardo Habkost, 2018/09/04
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Igor Mammedov, 2018/09/05
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Eduardo Habkost, 2018/09/05
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Igor Mammedov, 2018/09/06
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Eduardo Habkost, 2018/09/10
- Re: [Qemu-devel] [libvirt] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Eric Blake, 2018/09/10
- Re: [Qemu-devel] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Igor Mammedov, 2018/09/12
Re: [Qemu-devel] [libvirt] [PATCH v5 1/2] vl.c deprecate incorrect CPUs topology, Eric Blake, 2018/09/10