A method and system for maintaining a pinned kernel memory pool from which
memory buffers are allocated to time critical processing tasks. The
memory pool initially comprises a base block of pinned kernel memory to
which additional memory blocks are added as more buffers are requested.
Non-contiguous memory blocks may be used because they are maintained as a
linked list. New buffer requests are satisfied from the earliest added
blocks. The most recently added memory blocks are periodically examined
for use to determine if they are in use and are returned to the kernel
memory pool if they are unused.