On Wed, Jun 8, 2016 at 5:03 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > On 08/06/2016 17:30, Stefan Hajnoczi wrote: >> This needs to be fixed. I believe Paolo has a patch to continue using >> dataplane during savevm but that's a workaround rather than a solution >> to this problem. > > That is already in. Dataplane during migration has been enabled since > we've gotten rid of vring.
You're right. This means the problem isn't that dataplane disables itself during the live migration phase. The issue occurs because the mirror block job has finished syncing but is still alive when vmsave happens: static void virtio_blk_save(QEMUFile *f, void *opaque) { VirtIODevice *vdev = VIRTIO_DEVICE(opaque); VirtIOBlock *s = VIRTIO_BLK(vdev); if (s->dataplane) { virtio_blk_data_plane_stop(s->dataplane); } virtio_save(vdev, f); } We reach the situation I described where BDS AioContext changes but mirror_run() is still in the IOThread AioContext. Stefan