Re: [PATCH V4 3/3] virtio-blk: Add bio-based IO path for virtio-blk
From: Rusty Russell <hidden>
Date: 2012-07-30 02:13:51
Also in:
kvm, lkml
From: Rusty Russell <hidden>
Date: 2012-07-30 02:13:51
Also in:
kvm, lkml
On Sun, 29 Jul 2012 14:11:15 +0300, "Michael S. Tsirkin" [off-list ref] wrote:
On Sat, Jul 28, 2012 at 10:21:05AM +0800, Asias He wrote:quoted
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 guest kernel to achieve high IOPS and lower latency. The downside is that guest can not use the IO scheduler to merge and sort requests. However, this is not a big problem if the backend disk in host side uses faster disk device.If this optimization depends on the host, then it should be reported to the guest using a feature bit, as opposed to being guest driven.
I consider this approach a half-way step. Quick attempts on my laptop and I couldn't find a case where the bio path was a loss, but in theory if the host wasn't doing any reordering and it was a slow device, you'd want the guest to do so. I'm not sure if current qemu can be configured to do such a thing? Cheers, Rusty.