From: Rusty Russell <rusty@rustcorp.com.au>
To: Gregory Haskins <ghaskins@novell.com>
Cc: linux-kernel@vger.kernel.org, agraf@suse.de,
pmullaney@novell.com, pmorreale@novell.com,
anthony@codemonkey.ws, netdev@vger.kernel.org,
kvm@vger.kernel.org
Subject: Re: [RFC PATCH 00/17] virtual-bus
Date: Thu, 2 Apr 2009 11:54:13 +1030 [thread overview]
Message-ID: <200904021154.14082.rusty@rustcorp.com.au> (raw)
In-Reply-To: <49D3518B.1030403@novell.com>
On Wednesday 01 April 2009 22:05:39 Gregory Haskins wrote:
> Rusty Russell wrote:
> > I could dig through the code, but I'll ask directly: what heuristic do
> > you use for notification prevention in your venet_tap driver?
>
> I am not 100% sure I know what you mean with "notification prevention",
> but let me take a stab at it.
Good stab :)
> I only signal back to the guest to reclaim its skbs every 10
> packets, or if I drain the queue, whichever comes first (note to self:
> make this # configurable).
Good stab, though I was referring to guest->host signals (I'll assume
you use a similar scheme there).
You use a number of packets, qemu uses a timer (150usec), lguest uses a
variable timer (starting at 500usec, dropping by 1 every time but increasing
by 10 every time we get fewer packets than last time).
So, if the guest sends two packets and stops, you'll hang indefinitely?
That's why we use a timer, otherwise any mitigation scheme has this issue.
Thanks,
Rusty.
>
> The nice part about this scheme is it significantly reduces the amount
> of guest/host transitions, while still providing the lowest latency
> response for single packets possible. e.g. Send one packet, and you get
> one hypercall, and one tx-complete interrupt as soon as it queues on the
> hardware. Send 100 packets, and you get one hypercall and 10
> tx-complete interrupts as frequently as every tenth packet queues on the
> hardware. There is no timer governing the flow, etc.
>
> Is that what you were asking?
>
> > As you point out, 350-450 is possible, which is still bad, and it's at least
> > partially caused by the exit to userspace and two system calls. If virtio_net
> > had a backend in the kernel, we'd be able to compare numbers properly.
> >
> :)
>
> But that is the whole point, isnt it? I created vbus specifically as a
> framework for putting things in the kernel, and that *is* one of the
> major reasons it is faster than virtio-net...its not the difference in,
> say, IOQs vs virtio-ring (though note I also think some of the
> innovations we have added such as bi-dir napi are helping too, but these
> are not "in-kernel" specific kinds of features and could probably help
> the userspace version too).
>
> I would be entirely happy if you guys accepted the general concept and
> framework of vbus, and then worked with me to actually convert what I
> have as "venet-tap" into essentially an in-kernel virtio-net. I am not
> specifically interested in creating a competing pv-net driver...I just
> needed something to showcase the concepts and I didnt want to hack the
> virtio-net infrastructure to do it until I had everyone's blessing.
> Note to maintainers: I *am* perfectly willing to maintain the venet
> drivers if, for some reason, we decide that we want to keep them as
> is. Its just an ideal for me to collapse virtio-net and venet-tap
> together, and I suspect our community would prefer this as well.
>
> -Greg
>
>
next prev parent reply other threads:[~2009-04-02 1:24 UTC|newest]
Thread overview: 160+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-31 18:42 [RFC PATCH 00/17] virtual-bus Gregory Haskins
2009-03-31 18:42 ` [RFC PATCH 01/17] shm-signal: shared-memory signals Gregory Haskins
2009-03-31 20:44 ` Avi Kivity
2009-03-31 20:58 ` Gregory Haskins
2009-03-31 21:05 ` Avi Kivity
2009-04-01 12:12 ` Gregory Haskins
2009-04-01 12:24 ` Avi Kivity
2009-04-01 13:57 ` Gregory Haskins
2009-03-31 18:42 ` [RFC PATCH 02/17] vbus: add virtual-bus definitions Gregory Haskins
2009-04-02 16:06 ` Ben Hutchings
2009-04-02 18:13 ` Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 03/17] vbus: add connection-client helper infrastructure Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 04/17] vbus: add bus-registration notifiers Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 05/17] vbus: add a "vbus-proxy" bus model for vbus_driver objects Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 06/17] ioq: Add basic definitions for a shared-memory, lockless queue Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 07/17] ioq: add vbus helpers Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 08/17] venet: add the ABI definitions for an 802.x packet interface Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 09/17] net: Add vbus_enet driver Gregory Haskins
2009-03-31 20:39 ` Stephen Hemminger
2009-04-02 11:43 ` Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 10/17] venet-tap: Adds a "venet" compatible "tap" device to VBUS Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 11/17] venet: add scatter-gather support Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 12/17] venettap: " Gregory Haskins
2009-03-31 18:43 ` [RFC PATCH 13/17] x86: allow the irq->vector translation to be determined outside of ioapic Gregory Haskins
2009-03-31 19:16 ` Alan Cox
2009-03-31 20:02 ` Gregory Haskins
2009-03-31 18:44 ` [RFC PATCH 14/17] kvm: add a reset capability Gregory Haskins
2009-03-31 19:22 ` Avi Kivity
2009-03-31 20:02 ` Gregory Haskins
2009-03-31 20:18 ` Avi Kivity
2009-03-31 20:37 ` Gregory Haskins
2009-03-31 18:44 ` [RFC PATCH 15/17] kvm: add dynamic IRQ support Gregory Haskins
2009-03-31 19:20 ` Avi Kivity
2009-03-31 19:39 ` Gregory Haskins
2009-03-31 20:13 ` Avi Kivity
2009-03-31 20:32 ` Gregory Haskins
2009-03-31 20:59 ` Avi Kivity
2009-03-31 18:44 ` [RFC PATCH 16/17] kvm: Add VBUS support to the host Gregory Haskins
2009-03-31 18:44 ` [RFC PATCH 17/17] kvm: Add guest-side support for VBUS Gregory Haskins
2009-03-31 20:18 ` [RFC PATCH 00/17] virtual-bus Andi Kleen
2009-04-01 12:03 ` Gregory Haskins
2009-04-01 13:23 ` Andi Kleen
2009-04-01 14:19 ` Gregory Haskins
2009-04-01 14:42 ` Gregory Haskins
2009-04-01 17:01 ` Andi Kleen
2009-04-01 18:45 ` Anthony Liguori
2009-04-01 20:40 ` Chris Wright
2009-04-01 21:11 ` Gregory Haskins
2009-04-01 21:28 ` Chris Wright
2009-04-01 22:10 ` Gregory Haskins
2009-04-02 6:00 ` Chris Wright
2009-04-02 3:11 ` Herbert Xu
2009-04-01 21:09 ` Gregory Haskins
2009-04-02 0:29 ` Anthony Liguori
2009-04-02 3:11 ` Gregory Haskins
2009-04-02 6:51 ` Avi Kivity
2009-04-02 8:52 ` Herbert Xu
2009-04-02 9:02 ` Avi Kivity
2009-04-02 9:16 ` Herbert Xu
2009-04-02 9:27 ` Avi Kivity
2009-04-02 9:29 ` Herbert Xu
2009-04-02 9:33 ` Herbert Xu
2009-04-02 9:38 ` Avi Kivity
2009-04-02 9:41 ` Herbert Xu
2009-04-02 9:43 ` Avi Kivity
2009-04-02 9:44 ` Herbert Xu
2009-04-02 11:06 ` Gregory Haskins
2009-04-02 11:59 ` Avi Kivity
2009-04-02 12:30 ` Gregory Haskins
2009-04-02 12:43 ` Avi Kivity
2009-04-02 13:03 ` Gregory Haskins
2009-04-02 12:13 ` Rusty Russell
2009-04-02 12:50 ` Gregory Haskins
2009-04-02 12:52 ` Gregory Haskins
2009-04-02 13:07 ` Avi Kivity
2009-04-02 13:22 ` Gregory Haskins
2009-04-02 13:27 ` Avi Kivity
2009-04-02 14:05 ` Gregory Haskins
2009-04-02 14:50 ` Herbert Xu
2009-04-02 15:00 ` Avi Kivity
2009-04-02 15:40 ` Herbert Xu
2009-04-02 15:57 ` Avi Kivity
2009-04-02 16:09 ` Herbert Xu
2009-04-02 16:54 ` Avi Kivity
2009-04-02 17:06 ` Herbert Xu
2009-04-02 17:17 ` Herbert Xu
2009-04-03 12:25 ` Avi Kivity
2009-04-02 15:10 ` Michael S. Tsirkin
2009-04-03 4:43 ` Jeremy Fitzhardinge
2009-04-02 10:55 ` Gregory Haskins
2009-04-02 11:48 ` Avi Kivity
2009-04-03 10:58 ` Gerd Hoffmann
2009-04-03 11:03 ` Avi Kivity
2009-04-03 11:12 ` Herbert Xu
2009-04-03 11:46 ` Avi Kivity
2009-04-03 11:48 ` Herbert Xu
2009-04-03 11:54 ` Avi Kivity
2009-04-03 11:55 ` Herbert Xu
2009-04-03 12:02 ` Avi Kivity
2009-04-03 13:05 ` Herbert Xu
2009-04-03 11:18 ` Andi Kleen
2009-04-03 11:34 ` Herbert Xu
2009-04-03 11:46 ` Avi Kivity
2009-04-03 11:28 ` Gregory Haskins
2009-04-02 10:46 ` Gregory Haskins
2009-04-02 11:43 ` Avi Kivity
2009-04-02 12:22 ` Gregory Haskins
2009-04-02 12:42 ` Avi Kivity
2009-04-02 12:54 ` Gregory Haskins
2009-04-02 13:08 ` Avi Kivity
2009-04-02 13:36 ` Gregory Haskins
2009-04-02 13:45 ` Avi Kivity
2009-04-02 14:24 ` Gregory Haskins
2009-04-02 14:32 ` Avi Kivity
2009-04-02 14:41 ` Avi Kivity
2009-04-02 14:49 ` Anthony Liguori
2009-04-02 16:09 ` Anthony Liguori
2009-04-02 16:19 ` Avi Kivity
2009-04-02 18:18 ` Anthony Liguori
2009-04-03 1:11 ` Herbert Xu
2009-04-20 18:02 ` [kvm] " Alex Williamson
2009-04-03 12:03 ` Gregory Haskins
2009-04-03 12:15 ` Avi Kivity
2009-04-03 13:13 ` Gregory Haskins
2009-04-03 13:37 ` Avi Kivity
2009-04-03 16:28 ` Gregory Haskins
2009-04-05 10:00 ` Avi Kivity
2009-04-02 3:09 ` Herbert Xu
2009-04-02 6:46 ` Avi Kivity
2009-04-02 8:54 ` Herbert Xu
2009-04-02 9:03 ` Avi Kivity
2009-04-02 9:05 ` Herbert Xu
2009-04-01 20:29 ` Gregory Haskins
2009-04-01 22:23 ` Andi Kleen
2009-04-01 23:05 ` Gregory Haskins
2009-04-01 6:08 ` Rusty Russell
2009-04-01 11:35 ` Gregory Haskins
2009-04-02 1:24 ` Rusty Russell [this message]
2009-04-02 2:27 ` Gregory Haskins
2009-04-01 16:10 ` Anthony Liguori
2009-04-05 3:44 ` Rusty Russell
2009-04-05 8:06 ` Avi Kivity
2009-04-05 14:13 ` Anthony Liguori
2009-04-05 16:10 ` Avi Kivity
2009-04-05 16:45 ` Anthony Liguori
2009-04-02 3:15 ` Herbert Xu
[not found] <49D469D2020000A100045FA1@lucius.provo.novell.com>
2009-04-02 14:14 ` Patrick Mullaney
2009-04-02 14:27 ` Avi Kivity
2009-04-02 15:31 ` Gregory Haskins
2009-04-02 15:49 ` Avi Kivity
2009-04-02 16:06 ` Herbert Xu
2009-04-02 16:51 ` Avi Kivity
2009-04-02 17:44 ` Gregory Haskins
2009-04-03 11:43 ` Avi Kivity
2009-04-03 14:58 ` Gregory Haskins
2009-04-03 15:37 ` Avi Kivity
2009-04-03 18:19 ` Gregory Haskins
2009-04-05 10:50 ` Avi Kivity
2009-04-03 17:09 ` Chris Wright
2009-04-03 18:32 ` Gregory Haskins
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=200904021154.14082.rusty@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=agraf@suse.de \
--cc=anthony@codemonkey.ws \
--cc=ghaskins@novell.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pmorreale@novell.com \
--cc=pmullaney@novell.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 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).