On Thu, Aug 24 2000, David Mansfield wrote:
> Technically speaking, however, the completion of a request that was
> taken from the read list doesn't guarantee that there are still free
> slots in the read list, but rather that there *were* free slots in the
> read list at the time the request was made.
>
> If between that time and now a slew of requests were made, enough to use
> all available requests, plus one more read for the sake of argument,
> which will be put onto the wait queue. Now this new free request is put
> onto the read free_list, but the queue is not activated. Then another
> read request comes in, it will use the free request while the one on the
> wait queue starves.
That is true, doing otherwise is just too painful with the split
freelist. However, just doing a single free list and keeping count
of the entries (like we did earlier), makes this much easier to do
correctly.
-- * Jens Axboe <axboe@suse.de> * SuSE Labs
This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:14 EST