[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20071214.103031.39124025.davem@davemloft.net>
Date: Fri, 14 Dec 2007 10:30:31 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: dada1@...mosbay.com
Cc: kaber@...sh.net, netfilter-devel@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [NETFILTER] xt_hashlimit : speedups hash_dst()
From: Eric Dumazet <dada1@...mosbay.com>
Date: Fri, 14 Dec 2007 12:09:31 +0100
> 1) Using jhash2() instead of jhash() is a litle bit faster if applicable.
>
> 2) Thanks to jhash, hash value uses full 32 bits.
> Instead of returning hash % size (implying a divide)
> we return the high 32 bits of the (hash * size) that will
> give results between [0 and size-1] and same hash distribution.
>
> On most cpus, a multiply is less expensive than a divide, by an order
> of magnitude.
>
> Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
As a side note, Jenkins performs nearly optimally (unlike
most traditional hash functions) with power of two hash
table sizes.
Using a pow2 hash table size would completely obviate the
issues solved by #2.
I don't know if that is feasible here in xt_hashlimit, but
if it is that is how we should solve this expensive
modulo.
--
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