Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Jul 2004 10:38:43 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Poul-Henning Kamp <phk@freebsd.org>
Cc:        arch@freebsd.org
Subject:   Re: [REVIEW] unit number allocation API
Message-ID:  <40FFFBA3.1030204@elischer.org>
In-Reply-To: <200407221502.i6MF2Yqg039032@freefall.freebsd.org>
References:  <200407221502.i6MF2Yqg039032@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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





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