On 11/25/2015 5:03 AM, Michael S. Tsirkin wrote:
>+void vfio_migration_cap_handle(PCIDevice *pdev, uint32_t addr, >+ uint32_t val, int len) >+{ >+ VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev); >+ >+ if (addr == vdev->migration_cap + PCI_VF_MIGRATION_VF_STATUS >+ && val == PCI_VF_READY_FOR_MIGRATION) { >+ qemu_event_set(&migration_event);This would wake migration so it can proceed - except it needs QEMU lock to run, and that's taken by the migration thread.
Sorry, I seem to miss something. Which lock may cause dead lock when calling vfio_migration_cap_handle() and run migration? The function is called when VF accesses faked PCI capability.
It seems unlikely that this ever worked - how did you test this?
