Hi,

The commit 580b6b2aa2(dataplane: use the QEMU block layer for I/O)
introduces ~40% throughput regression on virtio-blk dataplane, and
one of causes is that submitting I/O as a batch is removed.

This patchset trys to introduce this mechanism on block, at least,
linux-aio can benefit from that.

With these patches, it is observed that thoughout on virtio-blk
dataplane can be improved a lot, see data in commit log of patch
3/3.

It should be possible to apply the batch mechanism to other devices
(such as virtio-scsi) too.

TODO:
        - support queuing I/O to multi files which need lots of change
    to linux-aio for scsi devies

V4:
        - support other non-raw formats with under-optimized performance
    - use reference counter for plug & unplug
    - flush io queue before sending flush command

V3:
        - only support submitting I/O as a batch for raw format, pointed by
    Kevin

V2:
        - define return value of bdrv_io_unplug as void, suggested by Paolo
        - avoid busy-wait for handling io_submit
V1:
        - move queuing io stuff into linux-aio.c as suggested by Paolo


Thanks,
--
Ming Lei



Reply via email to