On Wed, 13 Jul 2016 13:09:42 +0800 Fam Zheng <f...@redhat.com> wrote:
> v4: Drop patch 1. [Cornelia] > Add the last trivial patch. > > v3: Rebase to master. > Squash 4 into 3. [Paolo] > Add comment and commit message. [Stefan] > Add Stefan's r-b in patch 1 and 2. > > v2: Only convert virtio-{blk,scsi}. [Paolo] > > The benifit of this is we don't use event_notifier_set_handler even in > non-dataplane now, which in turn makes virtio-blk and virtio-scsi follow block > layer aio context semantics. Specifically, I/O requests must come from > blk_get_aio_context(blk) events, rather than iohandler_get_aio_context(), so > that bdrv_drained_begin/end will work as expected. > > Patch 4 reverts the hack (ab27c3b5e7) we added for 2.6. Lately, commit > b880481579 added another pair of bdrv_drained_begin/end so the crash cannot > happen even without ab27c3b5e7, but in order to avoid leaking requests, patch > two is still a must. > > Fam Zheng (6): > virtio: Add typedef for handle_output > virtio: Introduce virtio_add_queue_aio > virtio-blk: Call virtio_add_queue_aio > virtio-scsi: Call virtio_add_queue_aio > Revert "mirror: Workaround for unexpected iohandler events during > completion" > virtio-scsi: Replace HandleOutput typedef > > block/mirror.c | 9 --------- > hw/block/virtio-blk.c | 2 +- > hw/scsi/virtio-scsi.c | 14 ++++++------- > hw/virtio/virtio.c | 45 > +++++++++++++++++++++++++++++++++-------- > include/hw/virtio/virtio-scsi.h | 6 ++---- > include/hw/virtio/virtio.h | 8 ++++++-- > 6 files changed, 52 insertions(+), 32 deletions(-) Lightly tested with virtio-blk on s390x. Survives some disk I/O and managedsave/restore via libvirt.