add closefrom() call

Julian Elischer julian at elischer.org
Wed Jul 11 21:20:12 UTC 2007


Matthew Dillon wrote:
>     We added it basically because doing all the junk described in
>     previous postings in this thread in userland is a ridiculously huge
>     eyesore that doesn't scale and doesn't make sense when 5 minutes of
>     programming nets you a shiny new system call which does it all for you.
> 
>     If you are worried about optimizing it (which kinda implies a system
>     call anyhow since you aren't doing a context switch for each descriptor),
>     worry about optimizing the kernel implementation of the system call
>     rather then optimizing the unoptimizable userland that eats 300ns+ per
>     descriptor to do the close() instead of the 10ns/descriptor that it
>     takes the kernel to do the close().

my thought exactly.
I also add that speed IS important in this case as I have seen MANY
programs that start up by closing the first 2048 descriptors "just in case"
and I've seen some that do it more than once as they move through to 
daemon state. These programs have a slow startp due to this (not to mention 
it's a pain to step past it all when debugging).

Julian


> 
> 						-Matt



More information about the freebsd-hackers mailing list