New file descriptor allocation code in FreeBSD

Xin LI delphij at frontfree.net
Thu Jan 15 07:39:58 PST 2004


FYI, the performance difference caused by this commit is very impressive on
FreeBSD:

http://people.freebsd.org/~des/fdbench/

While porting this back to -STABLE and DragonFly is not trivial (many 5-ish
calls :( ), but I think it is worthy to have a look on it :)

----- Original Message ----- 
From: "Dag-Erling Smorgrav" <des at xxxxxxxxxxx>
<cvs-all at xxxxxxxxxxx>
Sent: Thursday, January 15, 2004 6:15 PM
Subject: cvs commit: src/sys/kern init_main.c kern_descrip.c sys_pipe.c
uipc_syscalls.c uipc_usrreq.c vfs_syscalls.c src/sys/sys filedesc.h


> des         2004/01/15 02:15:04 PST
>
>   FreeBSD src repository
>
>   Modified files:
>     sys/kern             init_main.c kern_descrip.c sys_pipe.c
>                          uipc_syscalls.c uipc_usrreq.c
>                          vfs_syscalls.c
>     sys/sys              filedesc.h
>   Log:
>   New file descriptor allocation code, derived from similar code
introduced
>   in OpenBSD by Niels Provos.  The patch introduces a bitmap of allocated
>   file descriptors which is used to locate available descriptors when a
new
>   one is needed.  It also moves the task of growing the file descriptor
table
>   out of fdalloc(), reducing complexity in both fdalloc() and do_dup().
>
>   Debts of gratitude are owed to tjr@ (who provided the original patch on
>   which this work is based), grog@ (for the gdb(4) man page) and rwatson@
>   (for assistance with pxeboot(8)).
>
>   Revision  Changes    Path
>   1.239     +2 -0      src/sys/kern/init_main.c
>   1.219     +285 -243  src/sys/kern/kern_descrip.c
>   1.163     +1 -0      src/sys/kern/sys_pipe.c
>   1.169     +4 -0      src/sys/kern/uipc_syscalls.c
>   1.114     +1 -1      src/sys/kern/uipc_usrreq.c
>   1.336     +3 -0      src/sys/kern/vfs_syscalls.c
>   1.54      +13 -6     src/sys/sys/filedesc.h






More information about the Kernel mailing list