On Tue, Dec 07, 2021 at 01:23:30PM +0000, Stefan Hajnoczi wrote: > v3: > - Fixed FUSE export aio_set_fd_handler() call that I missed and double-checked > for any other missing call sites using Coccinelle [Rich] > v2: > - Cleaned up unused return values in nvme and virtio-blk [Stefano] > - Documented try_poll_mode() ready_list argument [Stefano] > - Unified virtio-blk/scsi dataplane and non-dataplane virtqueue handlers [Stefano] > > The first patch improves AioContext's adaptive polling execution time > measurement. This can result in better performance because the algorithm makes > better decisions about when to poll versus when to fall back to file descriptor > monitoring. > > The remaining patches unify the virtio-blk and virtio-scsi dataplane and > non-dataplane virtqueue handlers. This became possible because the dataplane > handler function now has the same function signature as the non-dataplane > handler function. Stefano Garzarella prompted me to make this refactoring. > > Stefan Hajnoczi (6): > aio-posix: split poll check from ready handler > virtio: get rid of VirtIOHandleAIOOutput > virtio-blk: drop unused virtio_blk_handle_vq() return value > virtio-scsi: prepare virtio_scsi_handle_cmd for dataplane > virtio: use ->handle_output() instead of ->handle_aio_output() > virtio: unify dataplane and non-dataplane ->handle_output() > > include/block/aio.h | 4 +- > include/hw/virtio/virtio-blk.h | 2 +- > include/hw/virtio/virtio.h | 5 +- > util/aio-posix.h | 1 + > block/curl.c | 11 ++-- > block/export/fuse.c | 4 +- > block/io_uring.c | 19 ++++--- > block/iscsi.c | 4 +- > block/linux-aio.c | 16 +++--- > block/nfs.c | 6 +-- > block/nvme.c | 51 ++++++++++++------- > block/ssh.c | 4 +- > block/win32-aio.c | 4 +- > hw/block/dataplane/virtio-blk.c | 16 +----- > hw/block/virtio-blk.c | 14 ++---- > hw/scsi/virtio-scsi-dataplane.c | 60 +++------------------- > hw/scsi/virtio-scsi.c | 2 +- > hw/virtio/virtio.c | 73 +++++++++------------------ > hw/xen/xen-bus.c | 6 +-- > io/channel-command.c | 6 ++- > io/channel-file.c | 3 +- > io/channel-socket.c | 3 +- > migration/rdma.c | 8 +-- > tests/unit/test-aio.c | 4 +- > util/aio-posix.c | 89 +++++++++++++++++++++++++-------- > util/aio-win32.c | 4 +- > util/async.c | 10 +++- > util/main-loop.c | 4 +- > util/qemu-coroutine-io.c | 5 +- > util/vhost-user-server.c | 11 ++-- > 30 files changed, 219 insertions(+), 230 deletions(-) > > -- > 2.33.1 > > Thanks, applied to my block-next tree: https://gitlab.com/stefanha/qemu/commits/block-next Stefan