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>
