Re: 2.0.30 bends but doesn't break mke2fs

Hubert Mantel (mantel@suse.de)
Tue, 15 Apr 1997 13:33:50 +0200 (MEST)


Hello,

On Sun, 13 Apr 1997, Paul Gortmaker wrote:

> > Apr 11 20:55:53 server kernel: Couldn't get a free page.....
> >
> > 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
>
> It is relatively easy to cause slower machines (386's) with low
> mem (4 -> 8MB) to get stuck in an endless loop spewing this message once
> every 10s even when there are many MB of free swap still available.
> Hitting reset is about the only way out (happens with 2.0.29 and 2.1.x).

On my 386, 8MB the problem started with 2.0.30. It seems to be triggered
by high NFS activity.

> A cure for the symptom (but not a real fix for the problem) is to up the
> /proc/sys/vm/freepages values. The defaults of 16/24/32 for all machines
> with 8MB or less RAM seem simply too low. With 30/40/50 on a 5MB 386-40
> the problem never rears its ugly head.

Yes, with this little patch my problems went away. Maybe this should
become standard because otherwise small machines may become unreliable.
Without the patch, the system will hang. I'm testing without any swap
activated.

------------------------------------------------------
diff -urN linux-2.0.30/mm/page_alloc.c linux-2.0.30-test/mm/page_alloc.c
--- linux-2.0.30/mm/page_alloc.c Sat Aug 17 20:19:29 1996
+++ linux-2.0.30-test/mm/page_alloc.c Tue Apr 15 01:00:51 1997
@@ -264,11 +264,11 @@

/*
* select nr of pages we try to keep free for important stuff
- * with a minimum of 16 pages. This is totally arbitrary
+ * with a minimum of 30 pages. This is totally arbitrary
*/
i = (end_mem - PAGE_OFFSET) >> (PAGE_SHIFT+7);
- if (i < 16)
- i = 16;
+ if (i < 30)
+ i = 30;
min_free_pages = i;
free_pages_low = i + (i>>1);
free_pages_high = i + i;
------------------------------------------------------

> Paul.

Hubert mantel@suse.de