On Thu, Jun 9, 2016 at 9:25 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > On 09/06/2016 09:35, Stefan Hajnoczi wrote: >> >> 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. > > Why is the virtio_blk_data_plane_stop necessary? It used to sync > between vring and virtio state, but that's not required anymore---and we > know that the virtqueues are quiescent at this point...
I agree. It doesn't seem necessary anymore unless I'm missing a race condition with ioeventfd. It was introduced so that the savevm command (without live migration!) works: commit 10a06fd65f667a972848ebbbcac11bdba931b544 Author: Pavel Butsykin <pbutsy...@virtuozzo.com> Date: Mon Oct 26 14:42:57 2015 +0300 virtio: sync the dataplane vring state to the virtqueue before virtio_save We can remove it now. Stefan