Messages in this thread | | | Date | Wed, 31 May 2006 12:29:55 -0600 | From | "Brian F. G. Bidulock" <> | Subject | Re: Question about tcp hash function tcp_hashfn() |
| |
Evgeniy,
On Wed, 31 May 2006, Evgeniy Polyakov wrote: > > > > Worse: he folded the jenkins algorith result with > > > > > > > > h ^= h >> 16; > > > > h ^= h >> 8; > > > > > > > > Destroying the coverage of the function. > > > > > > It was done to simulate socket code which uses the same folding. > > > Leaving 32bit space is just wrong, consider hash table size with that > > > index. > > Btw, that probably requires some clarification. > Since hash table size is definitely less than returned hash value, so > higher bits are removed, for that case above folding is done both in > XOR hash and my test case. > It is possible to just remove higher bits, but fairly ditributed parts > being xored produce still fairly distributed value.
> > > > h ^= h >> 16; > > > > h ^= h >> 8;
This does not remove high order bits in either function. Your comparison results are simply invalid with these two lines in place.
--brian - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |