netdev
[Top] [All Lists]

Re: [PATCH] improvement on net/sched/cls_fw.c's hash function

To: hadi@xxxxxxxxxx
Subject: Re: [PATCH] improvement on net/sched/cls_fw.c's hash function
From: Wang Jian <lark@xxxxxxxxxxxx>
Date: Wed, 06 Apr 2005 14:45:37 +0800
Cc: Thomas Graf <tgraf@xxxxxxx>, netdev <netdev@xxxxxxxxxxx>
In-reply-to: <1112717495.1076.22.camel@jzny.localdomain>
References: <20050405213023.0256.LARK@linux.net.cn> <1112717495.1076.22.camel@jzny.localdomain>
Sender: netdev-bounce@xxxxxxxxxxx
Hi jamal,


On 05 Apr 2005 12:11:35 -0400, jamal <hadi@xxxxxxxxxx> wrote:

> Hi Wang,
> 
> On Tue, 2005-04-05 at 10:18, Wang Jian wrote:
> 
> > I am not saying that we must use jenkins. We may use a less expensive
> > hash function than jenkins, but better than & 0xFF.
> > 
> 
> Sure; point is as long as it doesnt destroy the common use in place.
> 
> >Anyway, I have done userspace test for jhash. The following test 
> > is done in a AMD Athlon 800MHz without other CPU load.
> > 
> 
> No, the test i was asking for is to show distribution of the
> hash not how long it took (which is also an ok test).

Sorry, the test is not on the AMD Athlon 800MHz, but a 2.4G Pentium4! I
didn't notice that. So the jhash's performance is not fast enough.

On AMD 800Mhz

line speed @ 1000Mbps

[root@home ~]# time ./a.out 
0.31user 0.00system 0:00.32elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+83minor)pagefaults 0swaps

line speed @ 100Mbps

[root@home ~]# time ./a.out 
0.03user 0.00system 0:00.03elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+83minor)pagefaults 0swaps


> 
> i.e if you fed the jenkins hash with 256 buckets - lets pick the number 1024 
> samples of the data you showed earlier for how fwmark looks like,
> how well would the result look like. 
> And what if you fed it with something like 1024 incremental fwmark from 
> say 1..1024?
> 

The test result looks not good. See attached file.

So let's find a better way.



-- 
  lark

Attachment: jhash-dist.txt
Description: Binary data

<Prev in Thread] Current Thread [Next in Thread>