On Sun, Dec 16 2001, Eric Sandeen wrote:
> Congratulations, you appear to be the world's first user of the
> pre-allocated buffer head pool in pagebuf! :)
>
> when pagebuf initializes, it sets aside a handful of buffer heads to use
> in "emergency" situations, i.e. if it tries to allocate a buffer head and
> fails. If this happens, it takes one from this pre-allocated pool
> instead. If normal allocation fails, _and_ the pre-allocated pool is
> empty, that thread will sleep until buffer heads get replaced in the
> pre-allocated pool - this is what happened to you. The thread gets woken
> up and picks up where it left off as soon as it is able to get a
> buffer head allocated from the pool.
BTW, in your 2.5 tree please drop such private pre-allocations and use
the mempool_* interface. bio/bio_vec allocations and highmem are already
using them :-)
--
Jens Axboe
|