2.0.30: Couldn't get a free page.....

Hubert Mantel (mantel@suse.de)
Sat, 12 Apr 1997 19:43:26 +0200 (MEST)


On Sat, 12 Apr 1997, Leonard N. Zubkoff wrote:

> Date: Fri, 11 Apr 1997 21:20:56 -0700 (PDT)
> From: David Flood <davidf@aa.net>


> Apr 11 20:48:01 server kernel: Couldn't get a free page.....
> Apr 11 20:48:14 server kernel: Couldn't get a free page.....
> some other messages
> Apr 11 20:55:53 server kernel: Couldn't get a free page.....

Starting with 2.0.30, I occasionally get this message. It seems that this
error shows more often on slow machines: When I try to load a rootimage
into ramdisk on a 386 with 8MB, I get this error when the rootimage is
loaded via NFS. If I load it from CD-ROM, everything is ok. When doing
exactly the same on a laptop (it has a memory hole, so it has a little bit
less than 8MB), everything is fine despite the fact that there are PCMCIA
drivers loaded which consume additional memory. I cannot reliably
reproduce the error on the 386: When loading from CD it never happened,
when loading via NFS it happens most of the time. Hardware is ok, tested
it very often with kernel 2.0.29 and never got the error. Tested it with
2.0.30 about 5 times.

And there's another thing that happened to me today. I tried to compile
all modules that exist with 2.0.30 on a PPro 200 with 64MB RAM and got the

gcc -D__KERNEL__ -I/compile/kernels/src/linux-2.0.30-modules/include
-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce
-pipe -m386 -DCPU=386 -DMODULE -c dgrs.c
cpp: output pipe has been closed
gcc: Internal compiler error: program cc1 got fatal signal 7
make[2]: *** [dgrs.o] Error 1
{standard input}: Assembler messages:
{standard input}:55880: Warning: end of file not at end of a line; newline
{standard input}:59559: make[2]: Leaving directory
make[1]: *** [modules] Error 2
make[1]: Leaving directory
make: *** [modules] Error 2
Error: Unknown pseudo-op: `.b'

I just restarted the compile and the error didn't repeat. Last time I saw
similar behaviour was with 1.99.4. The machine was slightly loaded at that
time (two simultaneously kernel compiles). I could not reproduce this
error. Currently the machine is compiling kernels all the time. Tomorrow I
will examine the logs to see whether the error showed up a second time.

> I've seen similar messages for quite a while, but the changes to buffer.c in
> 2.0.30 do seem to make them more common. I'm fairly sure that some work is
> still needed in 2.0.30+ to be more agressive in making memory available to the
> kernel when necessary.
> Leonard

Hubert mantel@suse.de