Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jan 2001 19:16:43 +0100
From:      mouss <usebsd@free.fr>
To:        Luigi Rizzo <rizzo@aciri.org>
Cc:        rizzo@aciri.org, drosih@rpi.edu, hackers@FreeBSD.ORG, wollman@khavrinen.lcs.mit.edu
Subject:   Re: [kernel patch] fcntl(...) to close many descriptors
Message-ID:  <4.3.0.20010129191306.061fb3e0@pop.free.fr>
In-Reply-To: <200101291657.f0TGveG33419@iguana.aciri.org>
References:  <4.3.0.20010129151413.023e03a0@pop.free.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
At 08:57 29/01/01 -0800, Luigi Rizzo wrote:
>hi,
>i have to admit i am not too much into theory of hashing, but i am
>unclear on how a perfect hash function can be simpler than "the
>obvious method" when the namespace is changing dynamically because
>modules are added or deleted.
>(the obvious method would be a cheap hash on 2-4 chars of
>the name followed by a scan of the list in each hash slot.)

one way would be to rehash when a syscall is added. hopefully, you want spend
your time adding'em. but it is probable that even this is unneded, though 
one still
needs to check.
for example, when adding named_syscall("foo", args), you compute 
hash("foo") using
the "current hash function, you try to insert it, and if you have a 
collision, you recompute
the hashes.
but, yes, this is over-engineering...



>Hopefully the number of functions using this method is
>small enough not to worry about the depth of the lists,
>and the type of calls using this method is one where the amt
>of work in the syscall itself is way larger than the matching cost.

yes, one can just strcmp() through the list. it's what filesystem code does 
anyway,
and there are far more files than there are syscalls.




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.3.0.20010129191306.061fb3e0>