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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list