[libvirt] [PATCH v3 0/8] Support qemu-system-arm vexpress-a9

Richard W.M. Jones rjones at redhat.com
Mon Sep 9 10:59:25 UTC 2013


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@lists.fedoraproject.org/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




More information about the libvir-list mailing list