[libvirt] libvirt unable to start domains

Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains: $ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt. Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB). Also attaching the domain config. -- Regards, Zeeshan Ali (Khattak) FSF member#5124

The -vga command always accepts qxl in 1.2 and newer. --- src/qemu/qemu_capabilities.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f49a31c..c3ab488 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2282,6 +2282,7 @@ qemuCapsInitQMPBasic(qemuCapsPtr caps) qemuCapsSet(caps, QEMU_CAPS_NO_USER_CONFIG); qemuCapsSet(caps, QEMU_CAPS_NETDEV_BRIDGE); qemuCapsSet(caps, QEMU_CAPS_SECCOMP_SANDBOX); + qemuCapsSet(caps, QEMU_CAPS_VGA_QXL); } -- 1.7.8.6

On 01/03/2013 04:42 PM, Doug Goldstein wrote:
The -vga command always accepts qxl in 1.2 and newer.
Are you sure? I thought qemu ./configure allows a choice of which graphics engines to support, and that you can compile qxl out (distros don't do that, but a self-built qemu might support -vga but not QXL). I think that rather than blindly setting this cap, we need to find the right QMP command to check which graphics engines are supported.
--- src/qemu/qemu_capabilities.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f49a31c..c3ab488 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2282,6 +2282,7 @@ qemuCapsInitQMPBasic(qemuCapsPtr caps) qemuCapsSet(caps, QEMU_CAPS_NO_USER_CONFIG); qemuCapsSet(caps, QEMU_CAPS_NETDEV_BRIDGE); qemuCapsSet(caps, QEMU_CAPS_SECCOMP_SANDBOX); + qemuCapsSet(caps, QEMU_CAPS_VGA_QXL); }
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On 01/04/2013 08:40 AM, Eric Blake wrote:
The -vga command always accepts qxl in 1.2 and newer. Are you sure? I thought qemu ./configure allows a choice of which graphics engines to support, and that you can compile qxl out (distros don't do that, but a self-built qemu might support -vga but not QXL). I
On 01/03/2013 04:42 PM, Doug Goldstein wrote: think that rather than blindly setting this cap, we need to find the right QMP command to check which graphics engines are supported.
When I tried qemu(1.3.50) ./configure --target-list=x86_64-softmmu --enable-debug --disable-spice #./x86_64-softmmu/qemu-system-x86_64 -h|grep -i qxl -vga [std|cirrus|vmware|qxl|xenfb|none] And it seem like no such QMP command for this on my qemu. Guannan

On 01/04/2013 12:34 AM, Guannan Ren wrote:
On 01/04/2013 08:40 AM, Eric Blake wrote:
The -vga command always accepts qxl in 1.2 and newer. Are you sure? I thought qemu ./configure allows a choice of which graphics engines to support, and that you can compile qxl out (distros don't do that, but a self-built qemu might support -vga but not QXL). I
On 01/03/2013 04:42 PM, Doug Goldstein wrote: think that rather than blindly setting this cap, we need to find the right QMP command to check which graphics engines are supported.
When I tried qemu(1.3.50) ./configure --target-list=x86_64-softmmu --enable-debug --disable-spice
#./x86_64-softmmu/qemu-system-x86_64 -h|grep -i qxl -vga [std|cirrus|vmware|qxl|xenfb|none]
help output is non-normative, if you have qemu 1.2 or newer. This could be a case of qemu not making the help output conditional on the compile options used. But since we shouldn't be relying on the help output, this grep means nothing for whether qxl is actually supported. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On Thu, Jan 3, 2013 at 3:44 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains:
$ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters
While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt.
Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB).
Also attaching the domain config.
-- Regards,
Zeeshan Ali (Khattak) FSF member#5124
Try the patch I sent in response to your original message. Not sure if that's the 100% fix we want. Need to check if we should also be checking for SPICE support in qemu_command.c but it should at the very least get you going for now. -- Doug Goldstein

On Fri, Jan 4, 2013 at 1:44 AM, Doug Goldstein <cardoe@gentoo.org> wrote:
On Thu, Jan 3, 2013 at 3:44 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains:
$ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters
While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt.
Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB).
Also attaching the domain config.
-- Regards,
Zeeshan Ali (Khattak) FSF member#5124
Try the patch I sent in response to your original message. Not sure if that's the 100% fix we want. Need to check if we should also be checking for SPICE support in qemu_command.c but it should at the very least get you going for now.
Thanks, I'll try that. -- Regards, Zeeshan Ali (Khattak) FSF member#5124

On Thu, Jan 3, 2013 at 11:44 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains:
$ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters
While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt.
Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB).
Also attaching the domain config.
If my `git bisect run` script worked, I've found the commit introducing this issue: 4c993d8ab5473334e9d4155faa913476ada39069 is the first bad commit commit 4c993d8ab5473334e9d4155faa913476ada39069 Author: Guannan Ren <gren@redhat.com> Date: Fri Dec 14 15:06:31 2012 +0800 qemu: add qemu vga devices caps and one cap to mark them usable QEMU_CAPS_DEVICE_QXL -device qxl QEMU_CAPS_DEVICE_VGA -device VGA QEMU_CAPS_DEVICE_CIRRUS_VGA -device cirrus-vga QEMU_CAPS_DEVICE_VMWARE_SVGA -device vmware-svga QEMU_CAPS_DEVICE_VIDEO_PRIMARY /* safe to use -device XXX for primary video device */ Fix a typo in qemuCapsObjectTypes, the string 'qxl' here should be -device qxl rather than -vga [...|qxl|..] :040000 040000 576dc9f1e74fae8b5d8c75349cc769e17c5f7758 5afc50956ad09cf6e740ce75800d746a53513271 M src :040000 040000 0b95704f11e9aacbd4c6510e29343a497c52c11e fbd9445a795a2814d8739805ebaf9c7c2f0d4160 M tests bisect run success FWIW, problem is not reproducible against the parent commit 34ca5684970fc5e4be0ec29809b73dea7be2d84f. -- Regards, Zeeshan Ali (Khattak) FSF member#5124

On Thu, Jan 3, 2013 at 5:58 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
On Thu, Jan 3, 2013 at 11:44 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains:
$ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters
While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt.
Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB).
Also attaching the domain config.
If my `git bisect run` script worked, I've found the commit introducing this issue:
4c993d8ab5473334e9d4155faa913476ada39069 is the first bad commit commit 4c993d8ab5473334e9d4155faa913476ada39069 Author: Guannan Ren <gren@redhat.com> Date: Fri Dec 14 15:06:31 2012 +0800
qemu: add qemu vga devices caps and one cap to mark them usable
QEMU_CAPS_DEVICE_QXL -device qxl QEMU_CAPS_DEVICE_VGA -device VGA QEMU_CAPS_DEVICE_CIRRUS_VGA -device cirrus-vga QEMU_CAPS_DEVICE_VMWARE_SVGA -device vmware-svga
QEMU_CAPS_DEVICE_VIDEO_PRIMARY /* safe to use -device XXX for primary video device */
Fix a typo in qemuCapsObjectTypes, the string 'qxl' here should be -device qxl rather than -vga [...|qxl|..]
:040000 040000 576dc9f1e74fae8b5d8c75349cc769e17c5f7758 5afc50956ad09cf6e740ce75800d746a53513271 M src :040000 040000 0b95704f11e9aacbd4c6510e29343a497c52c11e fbd9445a795a2814d8739805ebaf9c7c2f0d4160 M tests bisect run success
FWIW, problem is not reproducible against the parent commit 34ca5684970fc5e4be0ec29809b73dea7be2d84f.
-- Regards,
Zeeshan Ali (Khattak) FSF member#5124
Basically for some reason we tried to build the command line up as qemu-kvm ... -vga qxl instead of -device qxl-vga which is what I thought Guannan was aiming for. I could be wrong though. I'll take another look at it tonight. -- Doug Goldstein

On 01/04/2013 08:30 AM, Doug Goldstein wrote:
On Thu, Jan 3, 2013 at 5:58 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
On Thu, Jan 3, 2013 at 11:44 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains:
$ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters
While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt.
Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB).
Also attaching the domain config. If my `git bisect run` script worked, I've found the commit introducing this issue:
4c993d8ab5473334e9d4155faa913476ada39069 is the first bad commit commit 4c993d8ab5473334e9d4155faa913476ada39069 Author: Guannan Ren <gren@redhat.com> Date: Fri Dec 14 15:06:31 2012 +0800
qemu: add qemu vga devices caps and one cap to mark them usable
QEMU_CAPS_DEVICE_QXL -device qxl QEMU_CAPS_DEVICE_VGA -device VGA QEMU_CAPS_DEVICE_CIRRUS_VGA -device cirrus-vga QEMU_CAPS_DEVICE_VMWARE_SVGA -device vmware-svga
QEMU_CAPS_DEVICE_VIDEO_PRIMARY /* safe to use -device XXX for primary video device */
Fix a typo in qemuCapsObjectTypes, the string 'qxl' here should be -device qxl rather than -vga [...|qxl|..]
:040000 040000 576dc9f1e74fae8b5d8c75349cc769e17c5f7758 5afc50956ad09cf6e740ce75800d746a53513271 M src :040000 040000 0b95704f11e9aacbd4c6510e29343a497c52c11e fbd9445a795a2814d8739805ebaf9c7c2f0d4160 M tests bisect run success
FWIW, problem is not reproducible against the parent commit 34ca5684970fc5e4be0ec29809b73dea7be2d84f.
-- Regards,
Zeeshan Ali (Khattak) FSF member#5124
Basically for some reason we tried to build the command line up as qemu-kvm ... -vga qxl instead of -device qxl-vga which is what I thought Guannan was aiming for. I could be wrong though. I'll take another look at it tonight.
When libvirt reports this error, probably the qemu you are using doesn't support qxl-vga as the primary video device, and at the same time the qemu doesn't support "-vga qxl" either. The reason why libvirt worked out before is that there is a typo for the caps flag bit QEMU_CAPS_VGA_QXL fixed in the above commit. And libvirt didn't set QEMU_CAPS_VGA_QXL on for qemu(>1.2) by using QMP mode to check for qemu capabilities. - { "qxl", QEMU_CAPS_VGA_QXL }, + { "qxl", QEMU_CAPS_DEVICE_QXL }, So Doug's patch probably could fix your problem temporarily, but we need to think it through as Eric said. Guannan

On 01/04/2013 08:30 AM, Doug Goldstein wrote:
On Thu, Jan 3, 2013 at 5:58 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
On Thu, Jan 3, 2013 at 11:44 PM, Zeeshan Ali (Khattak) <zeeshanak@gnome.org> wrote:
Hi, I updated my libvirt git clone and install yesterday (after about a month or so) and now I can't start domains:
$ virsh start fedora18 error: Failed to start domain fedora18 error: unsupported configuration: This QEMU does not support QXL graphics adapters
While libvirt is self-built, I'm using qemu 1.2.2-1.fc18 from vanila Fedora 18 repo. Just to be clear, qemu was not updated before the problem appeared, only libvirt.
Here is the libvirtd log: http://static.fi/~zeenix/tmp/libvirtd-session-zeenix.log (13 MB).
Also attaching the domain config. If my `git bisect run` script worked, I've found the commit introducing this issue:
4c993d8ab5473334e9d4155faa913476ada39069 is the first bad commit commit 4c993d8ab5473334e9d4155faa913476ada39069 Author: Guannan Ren <gren@redhat.com> Date: Fri Dec 14 15:06:31 2012 +0800
qemu: add qemu vga devices caps and one cap to mark them usable
QEMU_CAPS_DEVICE_QXL -device qxl QEMU_CAPS_DEVICE_VGA -device VGA QEMU_CAPS_DEVICE_CIRRUS_VGA -device cirrus-vga QEMU_CAPS_DEVICE_VMWARE_SVGA -device vmware-svga
QEMU_CAPS_DEVICE_VIDEO_PRIMARY /* safe to use -device XXX for primary video device */
Fix a typo in qemuCapsObjectTypes, the string 'qxl' here should be -device qxl rather than -vga [...|qxl|..]
:040000 040000 576dc9f1e74fae8b5d8c75349cc769e17c5f7758 5afc50956ad09cf6e740ce75800d746a53513271 M src :040000 040000 0b95704f11e9aacbd4c6510e29343a497c52c11e fbd9445a795a2814d8739805ebaf9c7c2f0d4160 M tests bisect run success
FWIW, problem is not reproducible against the parent commit 34ca5684970fc5e4be0ec29809b73dea7be2d84f.
-- Regards,
Zeeshan Ali (Khattak) FSF member#5124
Basically for some reason we tried to build the command line up as qemu-kvm ... -vga qxl instead of -device qxl-vga which is what I thought Guannan was aiming for. I could be wrong though. I'll take another look at it tonight.
Actually, qemu(>=1.2) will use -device qxl-vga if it supports qxl-vga in its -device output which means the QEMU_CAPS_DEVICE_QXL_VGA is set already. If qemu doesn't support -device qxl-vga even though its version is above 1.2, it will use -vga qxl. For qemu(< 1.2), it definitely uses -vga qxl.
participants (5)
-
Doug Goldstein
-
Doug Goldstein
-
Eric Blake
-
Guannan Ren
-
Zeeshan Ali (Khattak)