Search Linux Wireless

Re: [RFC] mac80211: use rhashtable for station table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2015-02-23 19:33 GMT+03:00 Johannes Berg <johannes@xxxxxxxxxxxxxxxx>:
> On Sat, 2015-02-14 at 05:14 +0300, Sergey Ryazanov wrote:
>
>> A nice change! Couple of years ago I did some tests with real sets of
>> MACs and jhash gives a better distribution than usage of a last octet.
>>
>> BTW, why do you use full address and generic jhash? Hashing of two
>> least significant words could be faster. Isn't it?
>
> Well - not sure what you're trying to say? First you're saying jhash()
> was clearly better and then you're saying I shouldn't use it? ;-)
>
In first case, I mean the jhash _algorithm_, which has a better
distribution, in second case I mean the _generic_ jhash() _function_
and express my doubts about its performance. See below.

> Anyway - just using the last two bytes (or even 16-bit words) won't
> cover the case where the locally administered bit is set in an otherwise
> unchanged address, which is getting more common for P2P.
>
> I also don't really see any major drawbacks to hashing it all?
>
I agree that hashing all octets is not a drawback. But the jhash()
function is tailored to the input data of variable length, while we
have a vector of fixed length and appropriate functions. Could we do
the hashing in following way:

u32 sta_info_hash(void *addr, u32 len, u32 seed)
{
  u32 *k = addr + 2;
  return jhash_1word(*k, seed);
}

structu rhashtable_pararms param = {
  ...
  .hashfn = sta_info_hash,
  ...
}

or even (to account LA bit):

u32 sta_info_hash(void *addr, u32 len, u32 seed)
{
  u32 *k = addr;
  return jhash_2words(k[0], k[1], seed);
}

structu rhashtable_pararms param = {
  ...
  .key_len = 8,
  .hashfn = sta_info_hash,
  ...
}

This could save a couple of CPU circles and a couple of bytes in the
output image :)

-- 
Sergey
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux