Paul Durrant wrote:
> Andrew Gallatin wrote:
>>
>> But all of this depends on the OS and the NIC agreeing on the hash.
>> Is there any reason (patents?  complexity?  perception that the
>> windows solution is inferior?) that crossbow does not try to take
>> the windows approach?  Essentially all NICs available today that support
>> multiple RX queues also support all this other stuff that
>> Windows requires.  Why not take advantage of it?
>>
> 
> Quite. I asked this question well over a year ago and never got an answer.
> Windows receive-side scaling works well and, because the hash is cached 
> in the stack's connection data structure, and passed down the TX side no 
> s/w calculation of the hash is required.

And if your goal is to just avoid tx hashing, FreeBSD does that now.
It has no fine grained affinity control, but it does cache the
hash in the stack, so no expensive tx hashing is required.
The changes in FreeBSD are trivial, compared to TX hashing.  See
for example:

http://svn.freebsd.org/viewvc/base?view=revision&revision=190880

After this, packets come from the stack with m->m_pkthdr.flowid
set, and all you need to do is mask based on the flowid to pick
a tx queue


Drew

Reply via email to