More on lockups in 2.0.30

tenthumbs@cybernex.net
Tue, 03 Jun 1997 20:07:23 GMT


A few days ago, I described how "dd if=/dev/hda of=/dev/null bs=1k count=102400"
would lock up a machine with 16MB of RAM and a 2.0.30 kernel.

I've been playing with /proc/sys/vm/freepages and have these results:
200 300 400 OK,
150 225 300 OK,
140 210 280 OK,
130 195 260 fails immediately,
140 210 260 fails immediately,
130 210 280 fails after a few seconds.
The last two are interesting.

Looking through fs/buffer.c, I found this code at about line #609:
while (nr_free_pages > min_free_pages*2 && needed > 0 &&
grow_buffers(GFP_BUFFER, size)) {
needed -= PAGE_SIZE;
}

I tried replacing min_free_pages*2 with free_pages_high since they normally have
the same value. In this case, the above mesasurements are the same except that
the 130 210 280 test always succeeds.

These numbers are quite a bit larger than the defaults, so maybe the defaults
should be changed.

Maybe this is helpful to someone.

Thanks.