From: Gregory Haskins <gregory.haskins@gmail.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Dor Laor <dlaor@redhat.com>, Brian Stein <bstein@redhat.com>,
Avi Kivity <avi@redhat.com>, Herbert Xu <herbert.xu@redhat.com>,
Chris Wright <chrisw@redhat.com>,
Mark McLoughlin <markmc@redhat.com>,
Or Gerlitz <ogerlitz@voltaire.com>,
Yaron Haviv <yaronh@voltaire.com>,
Shahar Klein <shahark@voltaire.com>,
Gleb Natapov <gleb@redhat.com>, Dor Laor <dor@redhat.com>,
kvm@vger.kernel.org, virtualization@lists.linux-foundation.org
Subject: Re: TODO list for qemu+KVM networking performance v2
Date: Thu, 04 Jun 2009 13:16:05 -0400 [thread overview]
Message-ID: <4A280155.2060100@gmail.com> (raw)
In-Reply-To: <20090604164320.GB14592@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2942 bytes --]
Michael S. Tsirkin wrote:
> As I'm new to qemu/kvm, to figure out how networking performance can be improved, I
> went over the code and took some notes. As I did this, I tried to record ideas
> from recent discussions and ideas that came up on improving performance. Thus
> this list.
>
> This includes a partial overview of networking code in a virtual environment, with
> focus on performance: I'm only interested in sending and receiving packets,
> ignoring configuration etc.
>
> I have likely missed a ton of clever ideas and older discussions, and probably
> misunderstood some code. Please pipe up with corrections, additions, etc. And
> please don't take offence if I didn't attribute the idea correctly - most of
> them are marked mst by I don't claim they are original. Just let me know.
>
> And there are a couple of trivial questions on the code - I'll
> add answers here as they become available.
>
> I out up a copy at http://www.linux-kvm.org/page/Networking_Performance as
> well, and intend to dump updates there from time to time.
>
Hi Michael,
Not sure if you have seen this, but I've already started to work on
the code for in-kernel devices and have a (currently non-virtio based)
proof-of-concept network device which you can for comparative data. You
can find details here:
http://lkml.org/lkml/2009/4/21/408
<snip>
(Will look at your list later, to see if I can add anything)
> ---
>
> Short term plans: I plan to start out with trying out the following ideas:
>
> save a copy in qemu on RX side in case of a single nic in vlan
> implement virtio-host kernel module
>
> *detail on virtio-host-net kernel module project*
>
> virtio-host-net is a simple character device which gets memory layout information
> from qemu, and uses this to convert between virtio descriptors to skbs.
> The skbs are then passed to/from raw socket (or we could bind virtio-host
> to physical device like raw socket does TBD).
>
> Interrupts will be reported to eventfd descriptors, and device will poll
> eventfd descriptors to get kicks from guest.
>
>
I currently have a virtio transport for vbus implemented, but it still
needs a virtio-net device-model backend written. If you are interested,
we can work on this together to implement your idea. Its on my "todo"
list for vbus anyway, but I am currently distracted with the
irqfd/iosignalfd projects which are prereqs for vbus to be considered
for merge.
Basically vbus is a framework for declaring in-kernel devices (not kvm
specific, per se) with a full security/containment model, a
hot-pluggable configuration engine, and a dynamically loadable
device-model. The framework takes care of the details of signal-path
and memory routing for you so that something like a virtio-net model can
be implemented once and work in a variety of environments such as kvm,
lguest, etc.
Interested?
-Greg
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 266 bytes --]
next prev parent reply other threads:[~2009-06-04 17:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-04 16:43 TODO list for qemu+KVM networking performance v2 Michael S. Tsirkin
2009-06-04 17:16 ` Gregory Haskins [this message]
2009-06-04 17:29 ` Michael S. Tsirkin
2009-06-04 17:50 ` Gregory Haskins
2009-06-04 17:50 ` Gregory Haskins
2009-06-04 18:10 ` Michael S. Tsirkin
2009-06-04 18:10 ` Michael S. Tsirkin
2009-06-04 17:29 ` Michael S. Tsirkin
2009-06-04 17:16 ` Gregory Haskins
2009-06-10 3:39 ` Rusty Russell
2009-06-10 3:39 ` Rusty Russell
2009-06-10 6:26 ` Dor Laor
2009-06-10 6:26 ` Dor Laor
2009-06-10 14:39 ` Rusty Russell
2009-06-10 14:53 ` Michael S. Tsirkin
2009-06-10 14:53 ` Michael S. Tsirkin
2009-06-10 15:18 ` Avi Kivity
2009-06-10 15:54 ` Michael S. Tsirkin
2009-06-10 16:08 ` Avi Kivity
2009-06-10 16:08 ` Avi Kivity
2009-06-10 16:28 ` Michael S. Tsirkin
2009-06-10 16:28 ` Michael S. Tsirkin
2009-06-10 15:54 ` Michael S. Tsirkin
2009-06-10 15:18 ` Avi Kivity
-- strict thread matches above, loose matches on Subject: below --
2009-06-04 16:43 Michael S. Tsirkin
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=4A280155.2060100@gmail.com \
--to=gregory.haskins@gmail.com \
--cc=avi@redhat.com \
--cc=bstein@redhat.com \
--cc=chrisw@redhat.com \
--cc=dlaor@redhat.com \
--cc=dor@redhat.com \
--cc=gleb@redhat.com \
--cc=herbert.xu@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=markmc@redhat.com \
--cc=mst@redhat.com \
--cc=ogerlitz@voltaire.com \
--cc=shahark@voltaire.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=yaronh@voltaire.com \
/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.