[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/12] virtio: cleanup ioeventfd start/stop
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 00/12] virtio: cleanup ioeventfd start/stop |
Date: |
Wed, 21 Sep 2016 15:18:47 +0200 |
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
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
- [Qemu-devel] [PATCH 00/12] virtio: cleanup ioeventfd start/stop,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 01/12] virtio: move ioeventfd_disabled flag to VirtioBusState, Paolo Bonzini, 2016/09/21
- [Qemu-devel] [PATCH 04/12] virtio: introduce virtio_device_ioeventfd_enabled, Paolo Bonzini, 2016/09/21
- [Qemu-devel] [PATCH 02/12] virtio: move ioeventfd_started flag to VirtioBusState, Paolo Bonzini, 2016/09/21
- [Qemu-devel] [PATCH 05/12] virtio-blk: always use dataplane path if ioeventfd is active, Paolo Bonzini, 2016/09/21
- [Qemu-devel] [PATCH 03/12] virtio: add start_ioeventfd and stop_ioeventfd to VirtioDeviceClass, Paolo Bonzini, 2016/09/21
- [Qemu-devel] [PATCH 07/12] Revert "virtio: Introduce virtio_add_queue_aio", Paolo Bonzini, 2016/09/21