On Thu, Dec 10, 2015 at 11:45:36AM +0530, Bharata B Rao wrote:
> Prevent guests from booting with CPU topologies that have partially
> filled CPU cores or can result in partially filled CPU cores after CPU
> hotplug like
> 
> -smp 15,sockets=1,cores=4,threads=4,maxcpus=16 or
> -smp 15,sockets=1,cores=4,threads=4,maxcpus=17 or
> 
> Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com>
> ---
>  vl.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/vl.c b/vl.c
> index 525929b..e656f53 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1252,6 +1252,19 @@ static void smp_parse(QemuOpts *opts)
>          smp_cores = cores > 0 ? cores : 1;
>          smp_threads = threads > 0 ? threads : 1;
>  
> +        if (smp_cpus % smp_threads) {
> +            error_report("cpu topology: "
> +                         "smp_cpus (%u) should be multiple of threads (%u)",
> +                         smp_cpus, smp_threads);
> +            exit(1);
> +        }
> +
> +        if (max_cpus % smp_threads) {
> +            error_report("cpu topology: "
> +                         "maxcpus (%u) should be multiple of threads (%u)",
> +                         max_cpus, smp_threads);
> +            exit(1);
> +        }
>      }

Adding this seems like it has a pretty high chance of causing regression,
ie preventing previously working guests from booting with new QEMU. I
know adding the check makes sense from a semantic POV, but are we willing
to risk breaking people with such odd configurations ?

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

Reply via email to