From: Avi Kivity <avi@redhat.com>
To: Pekka Enberg <penberg@kernel.org>
Cc: Sasha Levin <levinsasha928@gmail.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
kvm@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [PATCH 5/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_SOCKET
Date: Wed, 13 Jul 2011 10:07:26 +0300 [thread overview]
Message-ID: <4E1D442E.6090308@redhat.com> (raw)
In-Reply-To: <CAOJsxLEfZcXaeNPMh=k8y9WqcH=qL-aGB1vJBb=xc_bis7Lcdw@mail.gmail.com>
On 07/13/2011 09:45 AM, Pekka Enberg wrote:
> >
> > OK, what's the simplest thing we can do here to keep Avi happy and get
> > the functionality of Sasha's original patch that helps us avoid guest
> > exits for serial console? I agree with Avi that we don't want
> > fragmented ABI but it seems to me there's no clear idea how to fix
> > KVM_IOEVENTFD_FLAG_SOCKET corner cases, right?
>
> And btw, I didn't follow the discussion closely, but introducing a new
> type of exit for a feature that's designed to _avoid exits_ doesn't
> seem like a smart thing to do. Is it even possible to support sockets
> sanely for this?
First of all, this feature doesn't avoid exits. The guest exits to the
kernel just the same. It just avoids userspace exits, trading them off
for remote wakeups or context switches, as the case may be, which are
both more expensive.
This feature is a win in the following cases:
- the socket is consumed in the kernel (like ioeventfd/irqfd and
vhost-net, or vfio)
- the I/O triggers a lot of cpu work, _and_ there is a lot of spare cpu
available on the host, so we can parallelize work. Note it ends up
being less efficient, but delivering higher throughput. That's common
in benchmarks but not so good for real workloads.
- the socket is consumed in another process (not thread) in which case
we gain some security
- the writes are such high frequency that we gain something from the
queueing is happens when we thread work. That's where the gain for
serial console can come from - though it would be better to just use
virtio-serial instead.
Second, introducing a new type of exit doesn't mean we see more exits.
Third, the new type of exit is probably not needed - we can use the
existing mmio/pio exits, and document that in certain cases the kernel
will fall back to these instead of delivering the I/O via the sockets
(userspace can then try writing itself).
There was a fourth too but I forgot it already.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2011-07-13 7:07 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-06 4:37 [PATCH 1/5] ioeventfd: Remove natural sized length limitation Sasha Levin
2011-07-06 4:37 ` [PATCH 2/5] ioeventfd: Add helper functions for reading and writing Sasha Levin
2011-07-06 4:37 ` [PATCH 3/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_READ Sasha Levin
2011-07-06 4:37 ` [PATCH 4/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_NOWRITE Sasha Levin
2011-07-06 4:37 ` [PATCH 5/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_SOCKET Sasha Levin
2011-07-06 11:42 ` Michael S. Tsirkin
2011-07-06 15:01 ` Sasha Levin
2011-07-06 17:58 ` Michael S. Tsirkin
2011-07-10 5:34 ` Sasha Levin
2011-07-10 8:05 ` Michael S. Tsirkin
2011-07-12 11:23 ` Sasha Levin
2011-07-12 11:26 ` Avi Kivity
2011-07-13 6:37 ` Pekka Enberg
2011-07-13 6:45 ` Pekka Enberg
2011-07-13 7:07 ` Avi Kivity [this message]
2011-07-13 8:02 ` Pekka Enberg
2011-07-13 12:57 ` Avi Kivity
2011-07-13 13:00 ` Pekka Enberg
2011-07-13 13:32 ` Avi Kivity
2011-07-14 7:26 ` Pekka Enberg
2011-07-14 8:07 ` Sasha Levin
2011-07-14 8:09 ` Avi Kivity
2011-07-14 8:14 ` Pekka Enberg
2011-07-14 8:28 ` Avi Kivity
2011-07-14 8:59 ` Pekka Enberg
2011-07-14 9:48 ` Avi Kivity
[not found] ` <CAOJsxLHSeRuTOoiJssyrELRx-eXok3WinLr_+_G4dB+yHNBKdg@mail.gmai! l.com>
2011-07-14 10:30 ` Pekka Enberg
2011-07-14 11:54 ` Avi Kivity
2011-07-14 12:32 ` Sasha Levin
2011-07-14 12:46 ` Avi Kivity
2011-07-14 13:00 ` Sasha Levin
2011-07-14 13:05 ` Avi Kivity
2011-07-14 13:17 ` Pekka Enberg
2011-07-14 13:23 ` Avi Kivity
2011-07-20 2:52 ` Anthony Liguori
2011-07-20 6:16 ` Sasha Levin
2011-07-20 9:42 ` Pekka Enberg
2011-07-14 12:37 ` Pekka Enberg
2011-07-14 12:48 ` Avi Kivity
2011-07-14 12:52 ` Pekka Enberg
2011-07-14 12:54 ` Avi Kivity
2011-07-14 8:19 ` Gleb Natapov
2011-07-14 8:25 ` Michael S. Tsirkin
2011-07-14 8:29 ` Avi Kivity
2011-07-20 2:49 ` Anthony Liguori
2011-07-20 9:44 ` Pekka Enberg
2011-07-20 21:10 ` Anthony Liguori
2011-07-25 12:10 ` Sasha Levin
2011-07-25 12:16 ` Avi Kivity
2011-07-25 12:26 ` Sasha Levin
2011-07-25 13:04 ` Avi Kivity
2011-07-13 7:51 ` Pekka Enberg
2011-07-13 10:04 ` Pekka Enberg
2011-07-13 10:26 ` Sasha Levin
2011-07-13 10:56 ` Pekka Enberg
2011-07-13 11:14 ` Pekka Enberg
2011-07-06 12:39 ` Avi Kivity
2011-07-06 12:58 ` Sasha Levin
2011-07-06 13:04 ` Avi Kivity
2011-07-06 13:00 ` Avi Kivity
2011-07-20 2:42 ` Anthony Liguori
2011-07-20 8:19 ` Avi Kivity
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=4E1D442E.6090308@redhat.com \
--to=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=levinsasha928@gmail.com \
--cc=mingo@elte.hu \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=penberg@kernel.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