[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081121185544.GB32518@solarflare.com>
Date: Fri, 21 Nov 2008 18:55:46 +0000
From: Ben Hutchings <bhutchings@...arflare.com>
To: Andrew Brampton <brampton@...il.com>
Cc: netdev@...r.kernel.org
Subject: Re: Receive Side Support (RSS) - Adding support into the kernel
Andrew Brampton wrote:
> Hi,
> Recently I've been interested in receive side support (RSS)[1], the
RSS stands for Receive-Side _Scaling_.
[...]
> There are three RSS settings which can be configured
> 1) Which fields of the packet get hashed.
There are ethtool {get,set}_rxhash() methods for this already. So far
only niu implements them.
> 2) The key used by the hashing algorithm
> 3) The indirection table, which is used to map a 7bit hash value to a
> particular core.
[...]
> I think creating a userland daemon is the best approach, as such here
> are my suggestions for changes to be made to the kernel.
>
> I'm suggesting that firstly each driver exports a set of functions
> which allow the RSS settings to be changed. This can be done by adding
> another field to the net_device struct, which would be a struct of
> function pointers, such as rss_set_key, rss_get_get, rss_set_hash,
> rss_get_hash, etc.
[...]
My understanding is that Windows drivers are required to support changing
the hash key dynamically but in practice Windows does not do so. This
suggests that there is little need to do so, and that it could be done
through ethtool without adding unacceptable overhead.
You also need to consider how drivers should communicate hash values to
the net core. Our hardware can pass a 32-bit hash value along with each
RX frame; I think this is a Windows requirement. I would guess that we
would want to record the hash values for specific flows (assuming, of
course, that they are stable) as a basis for rebalancing them.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists