Re: patch for 2.1.50 refill_freelist

Gadi Oxman (gadio@netvision.net.il)
Fri, 15 Aug 1997 20:34:07 +0400 (IDT)


Hi,

> Hi Gadi,
>
> There's another constraint in 2.0.31, which is that buffer heads are
> needed for swapping, but there's no distinction made between those
> needed for swapping and for regular buffers. So in 2.0.31 I'm concerned
> that generating swap requests to get buffers might lead to buffer head
> deadlocks. This constraint has been removed in the 2.1.xx kernels by
> separating async (swapping) buffer heads from the regular case.
>
> I agree that there's a problem with the current code not waking bdflush
> soon enough when there are lots of dirty buffers. But I'm not sure how
> to handle this best within the 2.0.31 framework ...
>
> Regards,
> Bill

Yes, this would be a problem :-(

One problem with the current grow_buffers() is that even if the page
cache contains many easily reclaim-able pages (for example, many cached
read-ahead pages), we will still target the small free pages pool.

So we have at least three different cases:

-- the buffer cache is big, most of the buffers are dirty.
-- the buffer cache is small, the page cache is easily reclaimable.
-- the buffer cache is small, the page cache not reclaimable without
swapping.

Gadi