Date: Tue, 27 Jul 2004 21:20:48 -0400 From: John Baldwin <jhb@FreeBSD.org> To: freebsd-arch@FreeBSD.org Cc: Poul-Henning Kamp <phk@FreeBSD.org> Subject: Re: [REVIEW] unit number allocation API Message-ID: <200407272120.48608.jhb@FreeBSD.org> In-Reply-To: <40FFFBA3.1030204@elischer.org> References: <200407221502.i6MF2Yqg039032@freefall.freebsd.org> <40FFFBA3.1030204@elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 22 July 2004 01:38 pm, Julian Elischer wrote: > 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 Whatever we use, can we use it to manage pids as well to work around the problem with putting newborn processes onto allproc. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200407272120.48608.jhb>