This patch introduces bio-based IO path for virtio-blk.
Compared to request-based IO path, bio-based IO path uses driver
provided -make_request_fn() method to bypasses the IO scheduler. It
handles the bio to device directly without allocating a request in block
layer. This reduces the IO path in
We need to support both REQ_FLUSH and REQ_FUA for bio based path since
it does not get the sequencing of REQ_FUA into REQ_FLUSH that request
based drivers can request.
REQ_FLUSH is emulated by:
A) If the bio has no data to write:
1. Send VIRTIO_BLK_T_FLUSH to device,
2. In the flush I/O
At least after review is done I really think this patch sopuld be folded
into the previous one.
Some more comments below:
@@ -58,6 +58,12 @@ struct virtblk_req
struct bio *bio;
struct virtio_blk_outhdr out_hdr;
struct virtio_scsi_inhdr in_hdr;
+ struct work_struct
On Tue, Aug 07, 2012 at 04:47:13PM +0800, Asias He wrote:
1) Ramdisk device
With bio-based IO path, sequential read/write, random read/write
IOPS boost : 28%, 24%, 21%, 16%
Latency improvement: 32%, 17%, 21%, 16%
2) Fusion IO device
With bio-based IO path,
**
CALL FOR PARTICIPATION
==
The 9th ACM International Conference on Autonomic Computing (ICAC 2012)
San Jose, California, USA
**
CALL FOR PARTICIPATION
==
The 9th ACM International Conference on Autonomic Computing (ICAC 2012)
San Jose, California, USA
September 17-21, 2012
http://icac2012.cs.fiu.edu
Sponsored by ACM