From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Asias He <asias@redhat.com>, Stefan Hajnoczi <stefanha@gmail.com>,
linux-kernel@vger.kernel.org, linux-aio@kvack.org,
kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
Benjamin LaHaise <bcrl@kvack.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 0/5] Add vhost-blk support
Date: Tue, 17 Jul 2012 12:45:26 +0300 [thread overview]
Message-ID: <20120717094526.GC7949@redhat.com> (raw)
In-Reply-To: <500527BA.9000001@redhat.com>
On Tue, Jul 17, 2012 at 10:52:10AM +0200, 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.
>
> Also, is there anything we can improve? Perhaps we can modify epoll and
> ask it to clear the eventfd for us (would save 2 reads)? Or
> io_getevents (would save 1)?
>
> > I guess you mean qemu here. Yes, in theory, qemu's block layer can be
> > improved to achieve similar performance as vhost-blk or kvm tool's
> > userspace virito-blk has. But I think it makes no sense to prevent one
> > solution becase there is another in theory solution called: we can do
> > similar in qemu.
>
> It depends. Like vhost-scsi, vhost-blk has the problem of a crippled
> feature set: no support for block device formats, non-raw protocols,
> etc. This makes it different from vhost-net.
Well vhost-net is also more limited than virtio-net: no support for
userspace networking, no support for level interrupts,
no support for legacy qemu vlans, can not trace datapath in userspace,
only virtio is supported. None of these is fundamental but this is
how our implementation currently behaves so from user's point of view
that's how it is. There are also fundamental limitations - e.g.
it's linux only, a special module needs to be loaded and user needs to
get an fd to the char device ... The way we addressed it, is by making it seamless for
the user: basically if your setup matches what vhost-net can
accelerate, it gets enabled, if not - userspace is used. Most of the
logic is in libvirt.
> So it begs the question, is it going to be used in production, or just a
> useful reference tool?
>
> Paolo
Sticking to raw already makes virtio-blk faster, doesn't it?
In that vhost-blk looks to me like just another optimization option.
Ideally I think user just should not care where do we handle virtio:
in-kernel or in userspace. One can imagine it being enabled/disabled
automatically if none of the features unsupported by it are used.
For example currently you specify vhost=on for tap backend and
then if you try to setup an unsupported by it like level interrupts,
it gets disabled and userspace virtio is used.
--
MST
--
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: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>
next prev parent reply other threads:[~2012-07-17 9:45 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-12 15:35 [PATCH 0/5] Add vhost-blk support Asias He
2012-07-12 15:35 ` [PATCH 1/5] aio: Export symbols and struct kiocb_batch for in kernel aio usage Asias He
2012-07-12 17:50 ` James Bottomley
2012-07-13 1:40 ` Asias He
2012-07-12 16:06 ` [PATCH 0/5] Add vhost-blk support Jeff Moyer
2012-07-13 1:19 ` Asias He
2012-07-16 11:58 ` Stefan Hajnoczi
2012-07-17 8:29 ` Asias He
2012-07-17 8:52 ` Paolo Bonzini
2012-07-17 9:21 ` Asias He
2012-07-17 9:32 ` Paolo Bonzini
2012-07-17 9:51 ` Michael S. Tsirkin
2012-07-17 11:11 ` Stefan Hajnoczi
2012-07-17 11:26 ` Michael S. Tsirkin
2012-07-17 11:42 ` Stefan Hajnoczi
2012-07-17 11:51 ` Stefan Hajnoczi
2012-07-17 11:54 ` Michael S. Tsirkin
2012-07-17 12:03 ` Stefan Hajnoczi
2012-07-17 12:48 ` Michael S. Tsirkin
2012-07-17 13:02 ` Paolo Bonzini
2012-07-17 13:26 ` Michael S. Tsirkin
2012-07-18 8:47 ` Asias He
2012-07-18 8:12 ` Asias He
2012-07-18 8:26 ` Stefan Hajnoczi
2012-07-18 9:46 ` Ronen Hod
2012-07-17 9:45 ` Michael S. Tsirkin [this message]
2012-07-17 10:14 ` Paolo Bonzini
2012-07-17 10:49 ` Michael S. Tsirkin
2012-07-17 10:56 ` Paolo Bonzini
2012-07-17 11:09 ` Michael S. Tsirkin
2012-07-17 11:36 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120717094526.GC7949@redhat.com \
--to=mst@redhat.com \
--cc=asias@redhat.com \
--cc=bcrl@kvack.org \
--cc=kvm@vger.kernel.org \
--cc=linux-aio@kvack.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stefanha@gmail.com \
--cc=viro@zeniv.linux.org.uk \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).