Hmmm ... let's say we have 64Mb RAM and 128Mb swap space.
If we do a `make clean && make -j' in a endless loop in kernel tree and
a `make clean && make -j' in a endless loop in a second kernel tree we will
get a load between 15 and 60 ... in this scenario we will run over
`Couldn't get a free page.....' and/or signal 7 once a hour. Now let's take
a third endless loop with `mke2fs /dev/xxxx' (/dev/xxxx is a unused test
partition :-) ... to get big buffer requests and in most cases mke2fs will
faile ...
Or let us take an other scenario: boot your system with mem=4M and try to run
`mke2fs /dev/xxxx'.
Note: In all cases there is enough VM ... but it looks like a problem in
buffer handling and/or vm mangement when the nunmber of physical pages
are small _and_ the stress/load high. With the new faster buffer
handling in 2.0.30 the problem seems to be triggered ... but the
problems are also in 2.0.29 (you need much more stress to trigger the
problem). If you run these test on several machines under serveral
environments you will get the impression that if a process needs buffer
there is no way to swap out other pages ... and maybe you will get
the experience that if a first process needs buffer and will freeze a
second command like `ls' will force the first one to run.
Werner