From: Ingo Molnar <mingo@elte.hu>
To: Pekka Enberg <penberg@kernel.org>
Cc: Alexander Graf <agraf@suse.de>,
Anthony Liguori <anthony@codemonkey.ws>,
Prasad Joshi <prasadjoshi124@gmail.com>,
Avi Kivity <avi@redhat.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Sasha Levin <levinsasha928@gmail.com>,
Cyrill Gorcunov <gorcunov@gmail.com>,
Asias He <asias.hejun@gmail.com>,
Jens Axboe <jaxboe@fusionio.com>
Subject: Re: [ANNOUNCE] Native Linux KVM tool v2
Date: Thu, 16 Jun 2011 09:24:52 +0200 [thread overview]
Message-ID: <20110616072452.GA15366@elte.hu> (raw)
In-Reply-To: <BANLkTi=Jm_50m6qyfQPCF0PuwUfuDNwMtg@mail.gmail.com>
* Pekka Enberg <penberg@kernel.org> wrote:
> On Thu, Jun 16, 2011 at 1:07 AM, Alexander Graf <agraf@suse.de> wrote:
> >> qemu-system-x86_64 -drive file=/dev/shm/test.qcow2,cache=writeback,if=virtio
> >
> > Wouldn't this still be using threaded AIO mode? I thought KVM tools used native AIO?
>
> We don't use AIO at all. It's just normal read()/write() with a
> thread pool. I actually looked at AIO but didn't really see why
> we'd want to use it.
We could certainly try kernel AIO, it would allow us to do all the
virtio-blk logic from the vcpu thread, without single threading it -
turning the QCOW2 logic into an AIO driven state machine in essence.
Advantages:
- we wouldnt do context-switching between the vcpu thread and the
helper threads
- it would potentially provide tighter caching and potentially would
allow higher scalability.
Disadvantages:
- the kaio codepaths are actually *more* complex than the regular
read()/write() IO codepaths - they keep track of an 'IO context',
so part of the efficiency advantages are spent on AIO tracking.
- executing AIO in the vcpu thread eats up precious vcpu execution
time: combined QCOW2 throughput would be limited by a single
core's performance, and any time spent on QCOW2 processing would
not be spent running the guest CPU. (In such a model we certainly
couldnt do more intelligent, CPU-intense storage solutions like on
the fly compress/decompress of QCOW2 data.)
- state machines are also fragile in the sense that any
unintentional blocking of the vcpu context will kill the
performance and latencies of *all* processing in certain
circumstances. So we generally strive to keep the vcpu demux path
obvious, simple and atomic.
- more advanced security models go out the window as well: we
couldnt isolate drivers from each other if all of them execute in
the same vcpu context ...
- state machines are also notoriously difficult to develop,
debug and maintain.
So careful performance, scalability, IO delay and maintainability
measurements have to accompany such a model switch, because the
disadvantages are numerous.
I'd only consider KAIO it if it provides some *real* measurable
performance advantage of at least 10% in some important usecase.
A few percent probably wouldnt be worth it.
Thanks,
Ingo
next prev parent reply other threads:[~2011-06-16 7:25 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-15 15:53 [ANNOUNCE] Native Linux KVM tool v2 Pekka Enberg
2011-06-15 16:30 ` Avi Kivity
2011-06-15 17:10 ` Pekka Enberg
2011-06-15 20:13 ` Prasad Joshi
2011-06-15 20:23 ` Sasha Levin
2011-06-15 20:49 ` Prasad Joshi
2011-06-15 21:53 ` Anthony Liguori
2011-06-15 22:04 ` Anthony Liguori
2011-06-15 22:07 ` Alexander Graf
2011-06-15 22:20 ` Anthony Liguori
2011-06-15 22:44 ` Anthony Liguori
2011-06-16 5:41 ` Pekka Enberg
2011-06-16 6:21 ` Pekka Enberg
2011-06-16 9:24 ` Christoph Hellwig
2011-06-16 9:34 ` Pekka Enberg
2011-06-16 9:48 ` Christoph Hellwig
2011-06-16 9:57 ` Ingo Molnar
2011-06-16 9:57 ` Pekka Enberg
2011-06-16 10:02 ` Christoph Hellwig
2011-06-16 11:22 ` Ingo Molnar
2011-06-16 11:25 ` Christoph Hellwig
2011-06-16 11:40 ` Ingo Molnar
2011-06-16 11:51 ` Christoph Hellwig
2011-06-17 7:21 ` Jeff Garzik
2011-06-16 5:45 ` Pekka Enberg
2011-06-16 7:24 ` Ingo Molnar [this message]
2011-06-16 7:33 ` Pekka Enberg
2011-06-16 8:07 ` Ingo Molnar
2011-06-16 9:09 ` Stefan Hajnoczi
2011-06-16 5:29 ` Stefan Hajnoczi
2011-06-16 5:42 ` Pekka Enberg
2011-06-15 21:41 ` Anthony Liguori
2011-06-16 14:28 ` Michael S. Tsirkin
2011-06-16 15:01 ` Asias He
2011-06-19 8:15 ` Michael S. Tsirkin
2011-06-16 14:48 ` Pekka Enberg
2011-06-16 22:50 ` Anthony Liguori
2011-06-17 1:03 ` Sasha Levin
2011-06-17 5:00 ` Stefan Hajnoczi
2011-06-17 13:41 ` Sasha Levin
2011-06-17 13:45 ` Anthony Liguori
2011-06-17 5:11 ` Stefan Hajnoczi
2011-06-17 7:31 ` justin
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=20110616072452.GA15366@elte.hu \
--to=mingo@elte.hu \
--cc=agraf@suse.de \
--cc=akpm@linux-foundation.org \
--cc=anthony@codemonkey.ws \
--cc=asias.hejun@gmail.com \
--cc=avi@redhat.com \
--cc=gorcunov@gmail.com \
--cc=jaxboe@fusionio.com \
--cc=kvm@vger.kernel.org \
--cc=levinsasha928@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=penberg@kernel.org \
--cc=prasadjoshi124@gmail.com \
--cc=torvalds@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.