From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ben Hutchings <bhutchings@solarflare.com>
Cc: netdev@vger.kernel.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org
Subject: Re: [PATCHv5] virtio-spec: virtio network device RFS support
Date: Thu, 6 Dec 2012 10:13:20 +0200 [thread overview]
Message-ID: <20121206081320.GD10837@redhat.com> (raw)
In-Reply-To: <1354739966.2655.25.camel@bwh-desktop.uk.solarflarecom.com>
On Wed, Dec 05, 2012 at 08:39:26PM +0000, Ben Hutchings wrote:
> On Mon, 2012-12-03 at 12:58 +0200, Michael S. Tsirkin wrote:
> > Add RFS support to virtio network device.
> > Add a new feature flag VIRTIO_NET_F_RFS for this feature, a new
> > configuration field max_virtqueue_pairs to detect supported number of
> > virtqueues as well as a new command VIRTIO_NET_CTRL_RFS to program
> > packet steering for unidirectional protocols.
> [...]
> > +Programming of the receive flow classificator is implicit.
> > + Transmitting a packet of a specific flow on transmitqX will cause incoming
> > + packets for this flow to be steered to receiveqX.
> > + For uni-directional protocols, or where no packets have been transmitted
> > + yet, device will steer a packet to a random queue out of the specified
> > + receiveq0..receiveqn.
> [...]
>
> It doesn't seem like this is usable to implement accelerated RFS in the
> guest, though perhaps that doesn't matter.
What is the issue? Could you be more explicit please?
It seems to work pretty well: if we have
# of queues >= # of cpus, incoming TCP_STREAM into
guest scales very nicely without manual tweaks in guest.
The way it works is, when guest sends a packet driver
select the rx queue that we want to use for incoming
packets for this slow, and transmit on the matching tx queue.
This is exactly what text above suggests no?
> On the host side, presumably
> you'll want vhost_net to do the equivalent of sock_rps_record_flow() -
> only without a socket? But in any case, that requires an rxhash, so I
> don't see how this is supposed to work.
>
> Ben.
Host should just do what guest tells it to.
On the host side we build up the steering table as we get packets
to transmit. See the code in drivers/net/tun.c in recent
kernels.
Again this actually works fine - what are the problems that you see?
Could you give an example please?
> --
> Ben Hutchings, Staff Engineer, Solarflare
> Not speaking for my employer; that's the marketing department's job.
> They asked us to note that Solarflare product names are trademarked.
next prev parent reply other threads:[~2012-12-06 8:13 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-03 10:58 [PATCHv5] virtio-spec: virtio network device RFS support Michael S. Tsirkin
2012-12-05 20:39 ` Ben Hutchings
2012-12-06 8:13 ` Michael S. Tsirkin [this message]
2012-12-06 20:03 ` Ben Hutchings
2012-12-06 20:29 ` Michael S. Tsirkin
2012-12-06 20:53 ` Ben Hutchings
2012-12-06 21:01 ` Michael S. Tsirkin
2012-12-06 22:03 ` Ben Hutchings
2012-12-07 3:14 ` Rusty Russell
-- strict thread matches above, loose matches on Subject: below --
2012-11-23 12:05 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=20121206081320.GD10837@redhat.com \
--to=mst@redhat.com \
--cc=bhutchings@solarflare.com \
--cc=kvm@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--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).