2010/1/18 Jiri Denemark <jdenemar(a)redhat.com>:
QEMU's command line equivalent for the following domain XML
fragment
<vcpus>2</vcpus>
<cpu ...>
...
<topology sockets='1' cores='2', threads='1'/>
</cpu>
is
-smp 2,sockets=1,cores=2,threads=1
This syntax was introduced in QEMU-0.12.
Version 2 changes:
- -smp argument build split into a separate function
- always add ",sockets=S,cores=C,threads=T" to -smp if qemu supports it
- use qemuParseCommandLineKeywords for command line parsing
Version 3 changes:
- ADD_ARG_LIT => ADD_ARG and line reordering in qemudBuildCommandLine
- rebased
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_conf.c | 157 ++++++++++++++++++++++++++++++++++++++++++++-----
src/qemu/qemu_conf.h | 3 +-
2 files changed, 143 insertions(+), 17 deletions(-)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 024b2ba..1fbb86a 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
[...]
@@ -4714,11 +4771,84 @@ syntax:
no_memory:
virReportOOMError(conn);
error:
- virCPUDefFree(cpu);
return -1;
}
+static int
+qemuParseCommandLineSmp(virConnectPtr conn,
+ virDomainDefPtr dom,
+ const char *val)
+{
+ unsigned int sockets = 0;
+ unsigned int cores = 0;
+ unsigned int threads = 0;
+ int i;
+ int nkws;
+ char **kws;
+ char **vals;
+ int n;
+ char *end;
+ int ret;
+
+ nkws = qemuParseCommandLineKeywords(conn, val, &kws, &vals, 1);
What's the purpose of the 1 here? qemuParseCommandLineKeywords takes 4
parameters, you pass 5. This breaks compilation for me.
Matthias