提交 a32ef3bf 编写于 作者: T Thomas Huth 提交者: Eduardo Habkost

vl: Add another sanity check to smp_parse() function

The code in smp_parse already checks the topology information for
sockets * cores * threads < cpus and bails out with an error in
that case. However, it is still possible to supply a bad configuration
the other way round, e.g. with:

 qemu-system-xxx -smp 4,sockets=1,cores=4,threads=2

QEMU then still starts the guest, with topology configuration that
is rather incomprehensible and likely not what the user wanted.
So let's add another check to refuse such wrong configurations.
Signed-off-by: NThomas Huth <thuth@redhat.com>
Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
Acked-by: NCornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: NBastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
上级 ed256144
......@@ -1223,7 +1223,13 @@ static void smp_parse(QemuOpts *opts)
exit(1);
}
max_cpus = qemu_opt_get_number(opts, "maxcpus", 0);
max_cpus = qemu_opt_get_number(opts, "maxcpus", cpus);
if (sockets * cores * threads > max_cpus) {
fprintf(stderr, "cpu topology: error: "
"sockets (%u) * cores (%u) * threads (%u) > maxcpus (%u)\n",
sockets, cores, threads, max_cpus);
exit(1);
}
smp_cpus = cpus;
smp_cores = cores > 0 ? cores : 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册