[REVIEW] unit number allocation API

Julian Elischer julian at elischer.org
Thu Jul 22 10:38:45 PDT 2004


Poul-Henning Kamp wrote:

>We need to allocate unit numbers for (pseudo)devices, and a few
>places we need to allocate inode numbers for synthetic filesystems
>(for instance DEVFS).
>
>For these applications the overhead of rman(9) can be totally
>unacceptable (60 bytes per allocation ?) and something more memory
>frugal is called for.
>
>This is a small API I just wrote, targeted specifically for allocating
>unit numbers and similar spaces.
>
>Currently the allocation policy is "lowest free number", but it
>would be possible to add support for allocating a specific number
>as well.
>
>It uses a mixed run-length/bitmap strategy with fixed size memory
>chunks (so it can use uma(9) in the kernel).
>
>Worst case memory usage is two bits per managed unit-number (worst
>case is "allocate all units, free all the odd numbered ones").
>
>For the typical case where we never free any unit numbers, it will
>use 52 bytes in total on i386.
>
>Please review.  (It can be run in userland)
>
>Poul-Henning
>
>  
>

please also look at the Thread_id (lwpid) allocator marcel added to
kern_thread.c





More information about the freebsd-arch mailing list