[libvirt] [PATCH 1/5] S390: Override QEMU_CAPS_NO_ACPI for s390x

Starting a KVM guest on s390 fails immediately. This is because "qemu --help" reports -no-acpi even for the s390(x) architecture but -no-acpi isn't supported there. Workaround is to remove QEMU_CAPS_NO_ACPI from the capability set after the version/capability extraction. Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> --- src/qemu/qemu_capabilities.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4308833..0c01cb0 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1511,6 +1511,11 @@ int qemuCapsExtractVersionInfo(const char *qemu, const char *arch, qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIBUS); } + /* S390 and probably other archs do not support no-acpi - + maybe the qemu option parsing should be re-thought. */ + if (STREQLEN(arch, "s390x", 5)) + qemuCapsClear(flags, QEMU_CAPS_NO_ACPI); + /* qemuCapsExtractDeviceStr will only set additional flags if qemu * understands the 0.13.0+ notion of "-device driver,". */ if (qemuCapsGet(flags, QEMU_CAPS_DEVICE) && -- 1.7.0.4 -- Mit freundlichen Grüßen/Kind Regards Viktor Mihajlovski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294

On 21.06.2012 18:15, Viktor Mihajlovski wrote:
Starting a KVM guest on s390 fails immediately. This is because "qemu --help" reports -no-acpi even for the s390(x) architecture but -no-acpi isn't supported there. Workaround is to remove QEMU_CAPS_NO_ACPI from the capability set after the version/capability extraction.
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> --- src/qemu/qemu_capabilities.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4308833..0c01cb0 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1511,6 +1511,11 @@ int qemuCapsExtractVersionInfo(const char *qemu, const char *arch, qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIBUS); }
+ /* S390 and probably other archs do not support no-acpi - + maybe the qemu option parsing should be re-thought. */ + if (STREQLEN(arch, "s390x", 5)) + qemuCapsClear(flags, QEMU_CAPS_NO_ACPI); + /* qemuCapsExtractDeviceStr will only set additional flags if qemu * understands the 0.13.0+ notion of "-device driver,". */ if (qemuCapsGet(flags, QEMU_CAPS_DEVICE) &&
I don't think this is the right approach. I mean, if qemu's broken shouldn't it be fixed? Michal

On Fri, Jun 22, 2012 at 09:50:25AM +0200, Michal Privoznik wrote:
On 21.06.2012 18:15, Viktor Mihajlovski wrote:
Starting a KVM guest on s390 fails immediately. This is because "qemu --help" reports -no-acpi even for the s390(x) architecture but -no-acpi isn't supported there. Workaround is to remove QEMU_CAPS_NO_ACPI from the capability set after the version/capability extraction.
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> --- src/qemu/qemu_capabilities.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4308833..0c01cb0 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1511,6 +1511,11 @@ int qemuCapsExtractVersionInfo(const char *qemu, const char *arch, qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIBUS); }
+ /* S390 and probably other archs do not support no-acpi - + maybe the qemu option parsing should be re-thought. */ + if (STREQLEN(arch, "s390x", 5)) + qemuCapsClear(flags, QEMU_CAPS_NO_ACPI); + /* qemuCapsExtractDeviceStr will only set additional flags if qemu * understands the 0.13.0+ notion of "-device driver,". */ if (qemuCapsGet(flags, QEMU_CAPS_DEVICE) &&
I don't think this is the right approach. I mean, if qemu's broken shouldn't it be fixed?
In principal I agree with you, but this aspect of QEMU is not likely to be changed in the forseeable future, not least because QEMU don't like us using -help in the first place. So, ACK to this patch on that basis Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 06/22/2012 11:59 AM, Daniel P. Berrange wrote:
On Fri, Jun 22, 2012 at 09:50:25AM +0200, Michal Privoznik wrote:
On 21.06.2012 18:15, Viktor Mihajlovski wrote:
Starting a KVM guest on s390 fails immediately. This is because "qemu --help" reports -no-acpi even for the s390(x) architecture but -no-acpi isn't supported there. Workaround is to remove QEMU_CAPS_NO_ACPI from the capability set after the version/capability extraction.
Signed-off-by: Viktor Mihajlovski<mihajlov@linux.vnet.ibm.com> --- src/qemu/qemu_capabilities.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4308833..0c01cb0 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1511,6 +1511,11 @@ int qemuCapsExtractVersionInfo(const char *qemu, const char *arch, qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIBUS); }
+ /* S390 and probably other archs do not support no-acpi - + maybe the qemu option parsing should be re-thought. */ + if (STREQLEN(arch, "s390x", 5)) + qemuCapsClear(flags, QEMU_CAPS_NO_ACPI); + /* qemuCapsExtractDeviceStr will only set additional flags if qemu * understands the 0.13.0+ notion of "-device driver,". */ if (qemuCapsGet(flags, QEMU_CAPS_DEVICE)&&
I don't think this is the right approach. I mean, if qemu's broken shouldn't it be fixed?
In principal I agree with you, but this aspect of QEMU is not likely to be changed in the forseeable future, not least because QEMU don't like us using -help in the first place.
So, ACK to this patch on that basis
Daniel
actually, the newest upstream version has removed the -no-acpi option for non-x86 archs. Still it is probably prudent to keep this workaround to support older qemu versions. Thanks. -- Mit freundlichen Grüßen/Kind Regards Viktor Mihajlovski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294
participants (3)
-
Daniel P. Berrange
-
Michal Privoznik
-
Viktor Mihajlovski