On Mon, Sep 09, 2013 at 10:28:39AM +0100, Daniel P. Berrange wrote: > On Mon, Sep 09, 2013 at 09:09:56AM +0100, Richard W.M. Jones wrote: > > > > I tried this patchset and it works at least as far as being able to > > get the libguestfs appliance up and running on ARM (with KVM) using > > the libvirt backend. Virtio-scsi & virtio-serial work. > > > > Some issues however: > > > > - Why is arch="armv7l"? Why not just "arm", or "armv7hl"? > > The kernel reported uname is 'armv7l', so libvirt matches that. > > IIUC 'armv7hl' is an RPM invention to show that the armv7l binaries > were compiled with hard floating point impl. > > 'arm' alone is too generic - there are ABI incompatible versions > armv5, armv6 which we need to distinguish, as well as big-endian > v7 (eg armv7b). > > > - I had to force the <emulator> to be /usr/bin/qemu-system-arm. > > Otherwise libvirt tries to run /usr/bin/qemu-kvm. May be related > > to RHBZ#1005581. > > https://github.com/libguestfs/libguestfs/commit/37e1e0da5acb34c902d55cde13c58cf580304bca > > https://bugzilla.redhat.com/show_bug.cgi?id=1005581 > > If it exists, /usr/bin/qemu-kvm should always point to the > qemu-system-NNN which matches the host arch. So if it is > pointing to the x86 emulator that is broken Fedora packaging > > > - I had to add -machine kernel_irqchip=off (for KVM): > > https://github.com/libguestfs/libguestfs/commit/f8d89bc42fbd930c61e4f6a81d9a9dc3465f2924 > > http://www.mail-archive.com/arm@xxxxxxxxxxxxxxxxxxxxxxx/msg05546.html > > I'd say that's something for QEMU / KVM guys to fix. If the kernel > IRQ chip is known broken for ARM, QEMU shouldn't be trying to use it. > > > - Setting <cpu mode="host-model"/> confuses libvirt completely. > > Yeah, CPU model stuff for non-x86 seems somewhat problematic in my > experiance. One more: - Hotplugging (adding a virtio-scsi disk) doesn't work on ARM: could not attach disk to libvirt domain: internal error: SCSI controller 0 was missing its PCI address [code=1 domain=10] at /home/rjones/d/libguestfs/tests/hotplug/test-hot-add.pl line 50. The libvirt XML fragment we're trying to add is approximately this one (I can get the precise one if you need it): <disk device="disk" type="file"> <source file="..."/> <target dev="sda" bus="scsi"/> <driver name="qemu" type="raw" cache="unsafe"/> <address type="drive" controller="0" bus="0" target="0" unit="0"/> </disk> The controller (which is not part of the XML fragment of course, but was part of the original domain) is: <controller type="scsi" index="0" model="virtio-scsi"/> Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list