Re: [partial fix?] Re: Badblocks and no free pages...

Gadi Oxman (gadio@netvision.net.il)
Mon, 5 May 1997 17:42:01 +0400 (IDT)


On Mon, 5 May 1997, Dr. Werner Fink wrote:

> What's about the folowing lines upto line 754 (goto repeat;)? It look's like
> the comment points to this code. In line 751/752 there is the needed
> wakeup_bdflush(1) ... isn't it?
>
> Werner

As I currently understand (I'm still learning buffer.c..), the last
wakeup_bdflush(1) is only triggered when we are *really* desperate,
and at this point we can be in a scenario in which most of the buffer
cache contains dirty buffers and almost no free pages are available.

On the other hand, something like:

while(nr_buffers_type[BUF_DIRTY] > ... )
wakeup_bdflush(1);

should say to the writing process "hold on a bit before you supply me
a new wave of buffers, as the write pipeline is already full enough
for efficient operation, and I'm already servicing it as fast as I can".

Gadi