This patch is follow-up of Christohp Hellwig's work [RFC: ->make_request support for virtio-blk]. http://thread.gmane.org/gmane.linux.kernel/1199763 Quote from hch "This patchset allows the virtio-blk driver to support much higher IOP rates which can be driven out of modern PCI-e flash devices. At this point it really is just a RFC due to various issues." I fixed race bug and add batch I/O for enhancing sequential I/O, FLUSH/FUA emulation. I tested this patch on fusion I/O device by aio-stress. Result is following as. Benchmark : aio-stress (64 thread, test file size 512M, 8K io per IO, O_DIRECT write) Environment: 8 socket - 8 core, 2533.372Hz, Fusion IO 320G storage Test repeated by 20 times Guest I/O scheduler : CFQ Host I/O scheduler : NOOP Request BIO(patch 1-4) BIO-batch(patch 1-6) (MB/s) stddev (MB/s) stddev (MB/s) stddev w 737.820 4.063 613.735 31.605 730.288 24.854 rw 208.754 20.450 314.630 37.352 317.831 41.719 r 770.974 2.340 347.483 51.370 750.324 8.280 rr 250.391 16.910 350.053 29.986 325.976 24.846 This patch enhances ramdom I/O performance compared to request-based I/O path. It's still RFC so welcome to any comment and review. Christoph Hellwig (3): block: add bio_map_sg virtio: support unlocked queue kick virtio-blk: remove the unused list of pending requests Minchan Kim (3): virtio-blk: implement ->make_request virtio-blk: Support batch I/O for enhancing sequential IO virtio-blk: Emulate Flush/FUA block/blk-merge.c | 63 ++++ drivers/block/virtio_blk.c | 690 ++++++++++++++++++++++++++++++++++++++---- drivers/virtio/virtio_ring.c | 33 ++- include/linux/blkdev.h | 2 + include/linux/virtio.h | 21 ++ 5 files changed, 737 insertions(+), 72 deletions(-) -- 1.7.6.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html