Richard W.M. Jones
2017-Jan-16  14:19 UTC
[Libguestfs] FYI: virtio-pci will be the default with libvirt 3.0.0, aarch64 & -M virt
(Thanks to Andrea Bolognani for bringing this to my attention)
from https://libvirt.org/news.html:
* v3.0.0 (unreleased) 
  - qemu: Use virtio-pci by default for aarch64 mach-virt guests
  - virtio-pci provides several advantages over virtio-mmio, such as
    the ability to hotplug devices and improved performance. While
    opting in to virtio-pci has been possible for a while,
    newly-defined guests will now use it automatically.
This is a good change because virtio-mmio is really slow, and because
all other platforms (except S/390!) use virtio-pci and we want to
minimize differences.
I previously wrote a patch to make this happen in libguestfs:
  https://www.redhat.com/archives/libguestfs/2016-October/thread.html#00078
However the change was still being finalized in qemu & libvirt at that
time, so I think that patch is probably not quite right for the final
qemu/libvirt.  In any case nothing is upstream.
This is just a note that things will probably be broken for
LIBGUESTFS_BACKEND=libvirt + libvirt 3.0.0 + aarch64 until we fix this
in libguestfs.
There is also a related RHEL bug:
  https://bugzilla.redhat.com/show_bug.cgi?id=1237250
Rich.
-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
Andrea Bolognani
2017-Jan-16  17:04 UTC
Re: [Libguestfs] FYI: virtio-pci will be the default with libvirt 3.0.0, aarch64 & -M virt
On Mon, 2017-01-16 at 14:19 +0000, Richard W.M. Jones wrote:> I previously wrote a patch to make this happen in libguestfs: > > https://www.redhat.com/archives/libguestfs/2016-October/thread.html#00078 > > However the change was still being finalized in qemu & libvirt at that > time, so I think that patch is probably not quite right for the final > qemu/libvirt. In any case nothing is upstream.The patch you wrote in October looks still applicable to me, but with libvirt 3.0.0 you won't even need to change anything in libguestfs to get virtio-pci on aarch64, as it's the new default. You might still want to manually assign PCI addresses in libguestfs in order to minimize the number of PCI controllers, but maybe the difference will not big enough to offset the disadvantage of having to take the matter into your own hands instead of relying on libvirt.> This is just a note that things will probably be broken for > LIBGUESTFS_BACKEND=libvirt + libvirt 3.0.0 + aarch64 until we fix this > in libguestfs.As long as you're sticking with upstream components, the change should be mostly transparent to users; on RHELSA, the combination you listed will indeed stop working until https://bugzilla.redhat.com/1337510 has been taken care of, with once again no need to change libguestfs AFAICT. -- Andrea Bolognani / Red Hat / Virtualization