[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 2/7] vl: Add another sanity check to smp_parse() func
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 2/7] vl: Add another sanity check to smp_parse() function |
Date: |
Mon, 28 Sep 2015 14:31:34 -0300 |
From: Thomas Huth <address@hidden>
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: Thomas Huth <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Bastian Koppelmann <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
vl.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/vl.c b/vl.c
index e211f6a..cbc8f25 100644
--- a/vl.c
+++ b/vl.c
@@ -1222,7 +1222,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;
--
2.1.0
- [Qemu-devel] [PULL 0/7] X86 queue, 2015-09-28, Eduardo Habkost, 2015/09/29
- [Qemu-devel] [PULL 1/7] cpu: Introduce X86CPUTopoInfo structure for argument simplification, Eduardo Habkost, 2015/09/29
- [Qemu-devel] [PULL 2/7] vl: Add another sanity check to smp_parse() function,
Eduardo Habkost <=
- [Qemu-devel] [PULL 3/7] target-i386: Enable "check" mode by default, Eduardo Habkost, 2015/09/29
- [Qemu-devel] [PULL 4/7] target-i386: Convert kvm_default_*features to property/value pairs, Eduardo Habkost, 2015/09/29
- [Qemu-devel] [PULL 5/7] target-i386: Move breakpoint related functions to new file, Eduardo Habkost, 2015/09/29
- [Qemu-devel] [PULL 6/7] target-i386: Make check_hw_breakpoints static, Eduardo Habkost, 2015/09/29
- [Qemu-devel] [PULL 7/7] target-i386: get/put MSR_TSC_AUX across reset and migration, Eduardo Habkost, 2015/09/29