[Top] [All Lists]

Re: [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy

To: Andi Kleen <ak@xxxxxxx>
Subject: Re: [PATCH] hashed device lookup (Does NOT meet Linus' sumission policy!)
From: Ben Greear <greearb@xxxxxxxxxxxxxxx>
Date: Sat, 06 Jan 2001 23:22:41 -0700
Cc: linux-kernel <linux-kernel@xxxxxxxxxxxxxxx>, "netdev@xxxxxxxxxxx" <netdev@xxxxxxxxxxx>
Organization: Candela Technologies
References: <> <>
Sender: owner-netdev@xxxxxxxxxxx
Andi Kleen wrote:
> On Sat, Jan 06, 2001 at 02:33:27PM -0700, Ben Greear wrote:
> > I'm hoping that I can get a few comments on this code.  It was added
> > to (significantly) speed up things like 'ifconfig -a' when running with
> > 4000 or so VLAN devices.  It should also help other instances with lots
> > of (virtual) devices, like FrameRelay, ATM, and possibly virtual IP
> > interfaces.  It probably won't help 'normal' users much, and in it's final
> > form, should probably be a selectable option in the config process.
> >
> > Anyway, let me know what you think!
> Does it make any significant different with the ifconfig from newest 
> nettools? I
> removed a quadratic algorithm from ifconfig's device parsing, and with that I 
> was
> able to display a few thousand alias devices on a unpatched kernel in 
> reasonable time.
> -Andi

At the time I was doing this, I downloaded the latest nettools version.
The hashing made a very noticable difference on 4000 interfaces, but
I haven't run any real solid benchmarkings at other levels.  Can
you tell me some distinguishing mark (version?) on ifconfig that I
can look for?

I'm willing to run such benchmarks, but what would make a good benchmark,
other than ifconfig -a?

And a question for the socket gurus:

Suppose I bind a raw socket to device vlan4001 (ie I have 4k in the list
before that one!!).  Currently, that means a linear search on all devices,
right?  In that extreme example, I would expect the hash to be very

Binding to IP addresses have the same issue??

Also, though hashing by name is not horribly exact, hashing on the device
index should be nearly perfect, so finding device 666 might take a search
through only 5 or so devices (find the hash-bucket, walk down the list in
that bucket).

Ben Greear (greearb@xxxxxxxxxxxxxxx)
Author of ScryMUD: 4444        (Released under GPL)     

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