On Wed, Sep 21, 2016 at 03:18:47PM +0200, Paolo Bonzini wrote: > This series started as an attempt to always use the dataplane path > for virtio-blk and virtio-scsi when ioeventfd is active. The aim > was three-fold: > > 1) to add more coverage for dataplane > > 2) to remove virtio_add_queue_aio > > 3) to simplify the dataplane start/stop code > > It achieves the first two objectives, and while it doesn't quite > achieve the third it does cleanup the generic ioeventfd code in > virtio-bus more than I expected. In particular, it reduces the set > of callbacks that transports must implement, and it removes the ugly > case where ioeventfd is started with generic callbacks and then moved > to the dataplane callbacks. It also enables some simplification of the > functions that deal with host notifiers. > > I've tested it with virtio-blk, virtio-scsi and vhost-net. > > Patches 1 and 2 are simplifications that are too nice to leave > them for later in the series. > > Patch 3 moves some of the ioeventfd code from virtio-bus.c to > virtio.c. At this point the transition is a bit half-assed, but > this changes as soon as we remove the generic->dataplane > handler transition. > > Patches 4 to 6 do exactly that, and then the spring cleaning > begins, lasting for the whole second half of the series. > > Opinions, reviews and bug reports? > > Thanks, > > Paolo
Overall this looks good, I'll try to review early next week. Thanks! > Paolo Bonzini (12): > virtio: move ioeventfd_disabled flag to VirtioBusState > virtio: move ioeventfd_started flag to VirtioBusState > virtio: add start_ioeventfd and stop_ioeventfd to VirtioDeviceClass > virtio: introduce virtio_device_ioeventfd_enabled > virtio-blk: always use dataplane path if ioeventfd is active > virtio-scsi: always use dataplane path if ioeventfd is active > Revert "virtio: Introduce virtio_add_queue_aio" > virtio: remove set_handler argument from set_host_notifier_internal > virtio: remove ioeventfd_disabled altogether > virtio: do not export set_host_notifier_internal > virtio: inline virtio_queue_set_host_notifier_fd_handler > virtio: inline set_host_notifier_internal > > hw/block/dataplane/virtio-blk.c | 67 +++++++++++------- > hw/block/dataplane/virtio-blk.h | 6 +- > hw/block/virtio-blk.c | 16 ++--- > hw/s390x/virtio-ccw.c | 36 +--------- > hw/s390x/virtio-ccw.h | 2 - > hw/scsi/virtio-scsi-dataplane.c | 51 ++++++++------ > hw/scsi/virtio-scsi.c | 24 +++---- > hw/virtio/vhost.c | 5 +- > hw/virtio/virtio-bus.c | 153 > +++++++++++++++------------------------- > hw/virtio/virtio-mmio.c | 35 +-------- > hw/virtio/virtio-pci.c | 32 +-------- > hw/virtio/virtio-pci.h | 2 - > hw/virtio/virtio.c | 139 +++++++++++++++++++++++------------- > include/hw/virtio/virtio-bus.h | 27 ++++--- > include/hw/virtio/virtio-scsi.h | 6 +- > include/hw/virtio/virtio.h | 11 +-- > 16 files changed, 272 insertions(+), 340 deletions(-) > > -- > 2.7.4