From: Ben Hutchings <bhutchings@solarflare.com>
To: Tom Herbert <therbert@google.com>
Cc: "Brandeburg, Jesse" <jesse.brandeburg@intel.com>,
Max Krasnyanskiy <maxk@qualcomm.com>,
David Miller <davem@davemloft.net>,
netdev@vger.kernel.org, Steven Rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: RFC [PATCH net-2.6 1/6] net: Scheduling softirqs between CPUSs
Date: Tue, 11 Mar 2008 16:52:54 +0000 [thread overview]
Message-ID: <20080311165253.GG26963@solarflare.com> (raw)
In-Reply-To: <65634d660803110920g5103dc60ya055a10f999b4e25@mail.gmail.com>
Tom Herbert wrote:
> > Could we use something like this to reschedule NAPI onto other
> > processors? If we get unlucky enough to have multiple napi routines
> > polling on a single CPU, and one or more completely idle CPUs (idle at
> > least for softirq) then we could really use one or the other of these
> > solutions.
>
> Jesse,
>
> This patch does provide a general mechanism to schedule (or
> reschedule) NAPI to other CPUs. We implemented two scheduling
> algorithms: 1) round robin scheduling of NAPI poll function across a
> set of CPUs on a per device basis 2) scheduling stack processing by
> directing packets to a CPU (using backlog queue); a hash is done on
> the 4-tuple to direct the packets for a connection to same CPU thus
> emulating HW RSS (we will add support for those devices that can
> provide the computed hash per packet).
Recent versions of Windows that are aware of RSS will instruct network
drivers to update their RSS indirection tables so that received
packets are handled on the same CPU as the thread likely to use the
received data. This requires that the network stack knows the hash
function, so Microsoft specified a "Toeplitz hash" for IPv4 and IPv6.
You can expect that most hardware RSS implementations will use this
function and not a simple XOR.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
next prev parent reply other threads:[~2008-03-11 16:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-05 20:51 RFC [PATCH net-2.6 1/6] net: Scheduling softirqs between CPUSs Tom Herbert
2008-03-05 21:21 ` David Miller
2008-03-07 19:02 ` Max Krasnyanskiy
2008-03-10 23:26 ` Tom Herbert
2008-03-11 1:06 ` Brandeburg, Jesse
2008-03-11 16:20 ` Tom Herbert
2008-03-11 16:52 ` Ben Hutchings [this message]
2008-03-11 23:48 ` Tom Herbert
2008-03-12 15:10 ` Ben Hutchings
2008-03-13 3:41 ` David Miller
2008-03-13 11:47 ` Ben Hutchings
2008-03-13 12:53 ` David Miller
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=20080311165253.GG26963@solarflare.com \
--to=bhutchings@solarflare.com \
--cc=davem@davemloft.net \
--cc=jesse.brandeburg@intel.com \
--cc=maxk@qualcomm.com \
--cc=mingo@elte.hu \
--cc=netdev@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=therbert@google.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).