From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Hajnoczi Subject: Re: [PATCH 0/5] Add vhost-blk support Date: Wed, 18 Jul 2012 09:26:02 +0100 Message-ID: References: <1342107302-28116-1-git-send-email-asias@redhat.com> <50052276.2080906@redhat.com> <500527BA.9000001@redhat.com> <50052E7E.6020100@redhat.com> <50067009.9030508@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Cc: Paolo Bonzini , linux-kernel@vger.kernel.org, linux-aio@kvack.org, kvm@vger.kernel.org, "Michael S. Tsirkin" , virtualization@lists.linux-foundation.org, Benjamin LaHaise , Alexander Viro , linux-fsdevel@vger.kernel.org To: Asias He Return-path: In-Reply-To: <50067009.9030508@redhat.com> Sender: owner-linux-aio@kvack.org List-Id: linux-fsdevel.vger.kernel.org On Wed, Jul 18, 2012 at 9:12 AM, Asias He wrote: > On 07/17/2012 07:11 PM, Stefan Hajnoczi wrote: >> >> On Tue, Jul 17, 2012 at 10:21 AM, Asias He 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, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: aart@kvack.org