On Thu, Feb 09, 2023 at 01:54:42PM +0000, Daniel P. Berrangé wrote:
On Thu, Feb 09, 2023 at 01:45:33PM +0000, Richard W.M. Jones wrote:
This machine type is more modern than the older 'pc' type and as most qemu development is now focused there we expect it will perform and behave better. In almost all respects this change should make no difference.
The key differences with q35 that have caused problems for apps in the past
- CDROMs must use 'sata' bus not 'ide' - PCI topology is completely different, so if you're trying to associate between the host side view of the config and the guest side view, your logic may need adapting - Hotplug of devices is limited to 1 device unless you pre-create a bunch of pcie-root-port devices
If you're already using 'virt' machine for aarch64 successfully though, you should have already known about the last 2 points, if they did indeed affect libguestfs.
The first point could conceivably affect the way to detect devices, depending on what approach is used, but could equally be a non issue.
I presume the libguestfs test suite would have complained if there was any genuine problem with the change, since it is pretty comphrensive.
I ran the full test suite and there were no complaints. In particular we do now do some complicated mapping between PCI and our internal device names[1] and at least the test of that didn't complain. I suspect we could see problems in guestfs-tools, especially things like virt-customize which are running things inside the appliance. For RHEL I have scheduled this change for early in the 9.3 cycle so there is plenty of time to test it. Rich. [1] https://github.com/libguestfs/libguestfs/blob/master/daemon/device-name-tran...
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2168578 --- lib/guestfs-internal.h | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h index 07a2b9f617..4e9a103d78 100644 --- a/lib/guestfs-internal.h +++ b/lib/guestfs-internal.h @@ -128,6 +128,9 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) #define MAX_WINDOWS_EXPLORER_SIZE (4 * 1000 * 1000)
/* Machine types. */ +#if defined(__x86_64__) +#define MACHINE_TYPE "q35" +#endif #ifdef __arm__ #define MACHINE_TYPE "virt" #endif -- 2.39.0
_______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs
With 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 :|
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top