On 11/09/2015 11:24 AM, Daniel P. Berrange wrote:
The -sdl and -net ...name=XXX arguments were both introduced
in QEMU 0.10, so the QEMU driver can assume they are always
available.
The -sdl wasn't really removed it seems - although it did me peeking
into the rabbit hole for a make check failure...
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 4 ----
src/qemu/qemu_capabilities.h | 6 +----
src/qemu/qemu_command.c | 27 ++++++++--------------
src/qemu/qemu_hotplug.c | 9 +-------
tests/qemucapabilitiesdata/caps_1.2.2-1.caps | 1 -
tests/qemucapabilitiesdata/caps_1.3.1-1.caps | 1 -
tests/qemucapabilitiesdata/caps_1.4.2-1.caps | 1 -
tests/qemucapabilitiesdata/caps_1.5.3-1.caps | 1 -
tests/qemucapabilitiesdata/caps_1.6.0-1.caps | 1 -
tests/qemucapabilitiesdata/caps_1.6.50-1.caps | 1 -
tests/qemucapabilitiesdata/caps_2.1.1-1.caps | 1 -
tests/qemucaps2xmldata/all_1.6.0-1.caps | 1 -
tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps | 1 -
tests/qemuhelptest.c | 8 -------
tests/qemuhotplugtest.c | 1 -
.../qemuxml2argv-graphics-sdl-fullscreen.args | 1 +
.../qemuxml2argv-graphics-sdl.args | 1 +
.../qemuxml2argvdata/qemuxml2argv-net-client.args | 4 ++--
.../qemuxml2argv-net-eth-ifname.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-net-eth.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-net-mcast.args | 4 ++--
.../qemuxml2argvdata/qemuxml2argv-net-server.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-net-udp.args | 5 ++--
tests/qemuxml2argvdata/qemuxml2argv-net-user.args | 4 ++--
.../qemuxml2argvdata/qemuxml2argv-net-virtio.args | 4 ++--
tests/qemuxml2argvtest.c | 6 ++---
26 files changed, 33 insertions(+), 72 deletions(-)
Having "-sdl" in the args for qemuxml2argv-graphics-sdl.args and
qemuxml2argv-graphics-sdl-fullscreen.arg caused 'qemuargv2xmltest' to fail.
Running with debug on showed:
48) QEMU ARGV-2-XML graphics-sdl
... Got unexpected warning from qemuParseCommandLineString:
2015-11-09 21:52:58.744+0000: 7908: info : libvirt version: 1.2.22
2015-11-09 21:52:58.744+0000: 7908: warning : qemuParseCommandLine:13603
: unknown QEMU argument 'std', adding to the qemu namespace
^[[31m^[[1mFAILED^[[0m
49) QEMU ARGV-2-XML graphics-sdl-fullscreen
... Got unexpected warning from qemuParseCommandLineString:
2015-11-09 21:52:58.744+0000: 7908: warning : qemuParseCommandLine:13603
: unknown QEMU argument 'cirrus', adding to the qemu namespace
^[[31m^[[1mFAILED^[[0m
So someone was stripping (or not stripping) an argument...
Since graphics-sdl.args has:
-parallel none \
+-sdl \
-vga std
and graphics-sdl-fullscreen has:
-full-screen \
+-sdl \
-vga cirrus
After a bit of debugging - qemuParseCommandLine has the following:
} else if (STRPREFIX(arg, "-hd") ||
STRPREFIX(arg, "-sd") ||
STRPREFIX(arg, "-fd") ||
STREQ(arg, "-cdrom")) {
WANT_VALUE();
If I add:
} else if (STREQ(arg, "-sdl")) {
/* Ignore */
Just before that, then things are happy again.
While looking for the cause I also noted the following:
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index a29cd08..5086c40 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1164,17 +1164,14 @@ qemuAssignDeviceAliases(virDomainDefPtr def, virQEMUCapsPtr
qemuCaps)
if (qemuAssignDeviceDiskAlias(def, def->disks[i], qemuCaps) < 0)
return -1;
}
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NET_NAME) ||
- virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
- for (i = 0; i < def->nnets; i++) {
- /* type='hostdev' interfaces are also on the hostdevs list,
- * and will have their alias assigned with other hostdevs.
- */
- if (virDomainNetGetActualType(def->nets[i])
- != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
- qemuAssignDeviceNetAlias(def, def->nets[i], i) < 0) {
- return -1;
- }
+ for (i = 0; i < def->nnets; i++) {
+ /* type='hostdev' interfaces are also on the hostdevs list,
+ * and will have their alias assigned with other hostdevs.
+ */
+ if (virDomainNetGetActualType(def->nets[i])
+ != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
+ qemuAssignDeviceNetAlias(def, def->nets[i], i) < 0) {
+ return -1;
}
}
@@ -8514,8 +8511,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
{
switch ((virDomainGraphicsType) graphics->type) {
case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_0_10) &&
- !virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) {
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("sdl not supported by '%s'"),
def->emulator);
return -1;
later in this code there's a:
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL))
virCommandAddArg(cmd, "-sdl");
The second caps check is probably unnecessary now.
John
@@ -10551,11 +10547,6 @@ qemuBuildCommandLine(virConnectPtr conn,
}
}
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_0_10) && sdl + vnc + spice > 1)
{
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("only 1 graphics device is supported"));
- goto error;
- }
if (sdl > 1 || vnc > 1 || spice > 1) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("only 1 graphics device of each type "
[...]