DragonFly BSD
DragonFly kernel List (threaded) for 2004-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [PATCH] Double-level file descriptor allocation


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 Jan 2004 16:59:25 -0800 (PST)

:Skip Ford wrote:
:> Here's a DragonFly port of Tim Robbins' FreeBSD port of Niels
:> Provos' NetBSD file descriptor allocation code.
:..
:>           fd    Unpatched      Patched
:>             1    0.765650     0.781279
:>          2001    1.148484     0.789092
:>          4001    1.546935     0.765657
:..
:>         48001   12.453618     0.812530
:
:Is there a down-side to this?

    This patch is a lot cleaner then what DES did, but doesn't quite
    solve the problem either.

    Would either you or Skip like to adapt *just* the fd_used() and 
    fd_unused() pieces, without any of the bitmap stuff?  i.e. don't
    implement fd_lomap or fd_himap or anything like that, just create
    the fd_used() and fd_unused() abstraction and the structural
    field manipulation they do on the original structural fields.  The
    allocation, reallocation, and freeing code also has to be abstracted
    into API functions.

    Once that is all done and comitted we can debate how best to implement
    efficient search code within the abstraction.  Personally speaking, I
    think that one might as well use a radix tree with simple first-free 
    hinting in the nodes and be done with the problem rather then all this
    bi-level bitmap or DES's solution stuff which only partially solves
    the problem.

					-Matt
					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]