Discussion:
[libvirt] [PATCH] qemu: Arm architectures don't have a default machine type
Andrea Bolognani
2018-11-26 12:21:32 UTC
Permalink
Commit 26cfb1a3cd39 introduced a list of preferred machine types,
which are meant to reflect QEMU's per-architecture historical
defaults and shield libvirt users from any changes in that area.

Arm architectures, however, never had a default machine type
associated with them, so if no machine type is requested by the
user we should just go through the usual path of picking the
first one reported by the 'query-machines' QMP command instead
of using integratorcp straight away.

Reported-by: Kashyap Chamarthy <***@redhat.com>
Signed-off-by: Andrea Bolognani <***@redhat.com>
---
src/qemu/qemu_capabilities.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index fde27010e4..09980467b1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2200,10 +2200,10 @@ static const char *preferredMachines[] =
NULL, /* VIR_ARCH_NONE (not a real arch :) */
"clipper", /* VIR_ARCH_ALPHA */
NULL, /* VIR_ARCH_ARMV6L (no QEMU impl) */
- "integratorcp", /* VIR_ARCH_ARMV7L */
- "integratorcp", /* VIR_ARCH_ARMV7B */
+ NULL, /* VIR_ARCH_ARMV7L (no default machine type) */
+ NULL, /* VIR_ARCH_ARMV7B (no default machine type) */

- "integratorcp", /* VIR_ARCH_AARCH64 */
+ NULL, /* VIR_ARCH_AARCH64 (no default machine type) */
"axis-dev88", /* VIR_ARCH_CRIS */
"pc", /* VIR_ARCH_I686 */
NULL, /* VIR_ARCH_ITANIUM (doesn't exist in QEMU any more) */
--
2.19.1
Kashyap Chamarthy
2018-11-26 13:13:44 UTC
Permalink
Post by Andrea Bolognani
Commit 26cfb1a3cd39 introduced a list of preferred machine types,
which are meant to reflect QEMU's per-architecture historical
defaults and shield libvirt users from any changes in that area.
Arm architectures, however, never had a default machine type
associated with them, so if no machine type is requested by the
user we should just go through the usual path of picking the
first one reported by the 'query-machines' QMP command instead
of using integratorcp straight away.
---
src/qemu/qemu_capabilities.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Thanks.
Post by Andrea Bolognani
+ NULL, /* VIR_ARCH_AARCH64 (no default machine type) */
"axis-dev88", /* VIR_ARCH_CRIS */
"pc", /* VIR_ARCH_I686 */
NULL, /* VIR_ARCH_ITANIUM (doesn't exist in QEMU any more) */
--
2.19.1
--
/kashyap
Daniel P. Berrangé
2018-11-27 15:28:04 UTC
Permalink
Post by Andrea Bolognani
Commit 26cfb1a3cd39 introduced a list of preferred machine types,
which are meant to reflect QEMU's per-architecture historical
defaults and shield libvirt users from any changes in that area.
Arm architectures, however, never had a default machine type
associated with them, so if no machine type is requested by the
user we should just go through the usual path of picking the
first one reported by the 'query-machines' QMP command instead
of using integratorcp straight away.
---
src/qemu/qemu_capabilities.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
NACK, this is incorrect and breaking historical libvirt behaviour.

When QEMU does not report any default machine type for an
architecture, libvirt would pick the first machine type
it found. This is why "integratorcp" must be listed here.
Post by Andrea Bolognani
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index fde27010e4..09980467b1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2200,10 +2200,10 @@ static const char *preferredMachines[] =
NULL, /* VIR_ARCH_NONE (not a real arch :) */
"clipper", /* VIR_ARCH_ALPHA */
NULL, /* VIR_ARCH_ARMV6L (no QEMU impl) */
- "integratorcp", /* VIR_ARCH_ARMV7L */
- "integratorcp", /* VIR_ARCH_ARMV7B */
+ NULL, /* VIR_ARCH_ARMV7L (no default machine type) */
+ NULL, /* VIR_ARCH_ARMV7B (no default machine type) */
- "integratorcp", /* VIR_ARCH_AARCH64 */
+ NULL, /* VIR_ARCH_AARCH64 (no default machine type) */
"axis-dev88", /* VIR_ARCH_CRIS */
"pc", /* VIR_ARCH_I686 */
NULL, /* VIR_ARCH_ITANIUM (doesn't exist in QEMU any more) */
--
2.19.1
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
Andrea Bolognani
2018-11-27 16:07:36 UTC
Permalink
Post by Daniel P. Berrangé
Post by Andrea Bolognani
Commit 26cfb1a3cd39 introduced a list of preferred machine types,
which are meant to reflect QEMU's per-architecture historical
defaults and shield libvirt users from any changes in that area.
Arm architectures, however, never had a default machine type
associated with them, so if no machine type is requested by the
user we should just go through the usual path of picking the
first one reported by the 'query-machines' QMP command instead
of using integratorcp straight away.
NACK, this is incorrect and breaking historical libvirt behaviour.
When QEMU does not report any default machine type for an
architecture, libvirt would pick the first machine type
it found. This is why "integratorcp" must be listed here.
I suspected as much after initially discussing the issue, hence
why I CC'd you when posting. Looks like that was a good call! :)
--
Andrea Bolognani / Red Hat / Virtualization
Loading...