Re: [PATCH 0/5] Add vhost-blk support

From: Stefan Hajnoczi
Date: Wed Jul 18 2012 - 04:26:19 EST


On Wed, Jul 18, 2012 at 9:12 AM, Asias He <asias@xxxxxxxxxx> wrote:
> On 07/17/2012 07:11 PM, Stefan Hajnoczi wrote:
>>
>> On Tue, Jul 17, 2012 at 10:21 AM, Asias He <asias@xxxxxxxxxx> wrote:
>>>
>>> On 07/17/2012 04:52 PM, Paolo Bonzini wrote:
>>>>
>>>>
>>>> Il 17/07/2012 10:29, Asias He ha scritto:
>>>>>
>>>>>
>>>>> So, vhost-blk at least saves ~6 syscalls for us in each request.
>>>>
>>>>
>>>>
>>>> Are they really 6? If I/O is coalesced by a factor of 3, for example
>>>> (i.e. each exit processes 3 requests), it's really 2 syscalls per
>>>> request.
>>>
>>>
>>>
>>> Well. I am counting the number of syscalls in one notify and response
>>> process. Sure the IO can be coalesced.
>>
>>
>> Linux AIO also supports batching in io_submit() and io_getevents().
>> Depending on the request pattern in the vring when you process it, you
>> should be able to do better than 1 set of syscalls per host I/O
>> request.
>>
>> Are you taking advantage of that at the moment in your userspace
>> benchmark?
>
>
> OK. I know that batching in io_submit() and io_getevetns(). There was a
> patch for kvm tool long time ago. Now, both vhost-blk and kvm tool are not
> taking advantage of that atm. There are issues: e.g. How many number of
> request we want to batch? Does this batching hurt latency?

I didn't mean introducing a delay so that multiple requests can be batched.

I was just thinking of the simple case: when there are a lot of
parallel requests the chance increases that a single vring interrupt
provides several I/O requests. In that case it's easy for the
virtio-blk implementation to issue them all in one io_submit(2) call.
The same is true for io_getevents(2), there might be several completed
host I/O requests.

The reason I mentioned this was because the actual syscall pattern per
request might not require 1 io_submit(2)/io_getevents(2) if you are
processing a lot of requests in parallel. The only way to know why
kvmtool is slower is by profiling...

Stefan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/