[libvirt] [PATCH 3/3] qemu_domain: use correct default USB controller on ppc64

Andrea Bolognani abologna at redhat.com
Mon Mar 6 19:11:40 UTC 2017


On Thu, 2017-03-02 at 09:48 +0100, Pavel Hrdina wrote:
> The history of USB controller for ppc64 guest is complex and goes
> back to libvirt 1.3.1 where the fun started.
> 
> Prior Libvirt 1.3.1 if no model for USB controller was specified
> we've simply passed "-usb" on QEMU command line.
> 
> Since Libvirt 1.3.1 there is a patch (8156493d8db) that fixes this
> issue by using "-device pci-ohci,..." but it breaks migration with
> older Libvirts which was agreed that's acceptable.  However this
> patch didn't reflect this change in the domain XML and the model
> was still missing.

Unfortunately, migrating a guest with

  <controller type='usb' index='0'>
    <address type='pci' .../>
  </controller>

from libvirt 2.1.0 (which still allows not specifying the
controller model) to a build of libvirt including this patch
doesn't work as expected.

On the source host, I run

  # virsh migrate \
    mig-usb \
    qemu+ssh://root@destination/system \
    --live --persistent --copy-storage-all --compressed

While migration is still running, I can check on the
destination host and verify that:

  * the <controller> element has model='pci-ohci';
  * the QEMU command line contains -device pci-ohci.

However, after migration is complete, the <controller>
element has model='nec-xhci' instead of model='pci-ohci',
which means that power cycling the guest results in
breaking the guest ABI.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list