performance: 0.879 graphic: 0.843 device: 0.778 KVM: 0.762 other: 0.760 PID: 0.759 semantic: 0.688 network: 0.679 permissions: 0.676 vnc: 0.632 files: 0.603 socket: 0.559 boot: 0.511 debug: 0.459 usb-hub can not be detached when detach usb device from VM I give a host usb device to guest in the way of passthrough,use "virsh attach-device" cmd. In guest os,use "lsusb" cmd I can see two devices have been added,one is usb device and the other is usb-hub(0409:55aa NEC Corp. Hub). when I use "virsh detach-device" detach the usb device,in guest os the usb-hub was still exists. It can create a bad impression when operating the VM,for example,suspend and resume the VM,qemu would report that: 2016-05-24T12:03:54.434369Z qemu-kvm: Unknown savevm section or instance '0000:00:01.2/2/usb-hub' 0 2016-05-24T12:03:54.434742Z qemu-kvm: load of migration failed: Invalid argument From qemu's code,it can be sure that the usb-hub is generated by qemu,and the process of detaching usb-hub has already been executed,but failed.With adding print information,error as follows: libusbx: error [do_close] Device handle closed while transfer was still being processed, but the device is still connected as far as we know libusbx: warning [do_close] A cancellation for an in-flight transfer hasn't completed but closing the device handle I found that when I attached an usb device to the VM, the VM would add an usb-hub automatically if there was no usb-hub. After adding an usb-hub,the VM assigned a port to the actual usb device. When detaching the usb device,the qemu only detach the port,without detaching the usb-hub.So when doing action like migrating or suspending/resumming,the VM will fail. Try detach the usb-hub device by the virsh detach-device usb-hub.xml? Of course using virtual usb controller is normal,The situation of the problems is to use the passthrough usb devices The usb-hub device should be deleted when the usb device was detached. When do you fix this bug? Use a newer libvirt version which manages usb addressing and assigns usb devices to usb ports. This is required to make sure the physical device tree is the same after vmsave/vmload or live migration.