Subject: NKMEMPAGES on m68k ports?
To: None <>
From: John Klos <>
List: tech-kern
Date: 12/21/2001 23:51:15

Earlier this year I had stability issues with my primary server (Amiga) -
it was crashing more and more as the load increased. Eventually I
discovered that the problem was that the size of the kernel malloc area
was too small.

Looking at how many pages were allocated for i386 per megabyte and
adjusting for the difference in page size, I manually configured a kernel
with NKMEMPAGES_MIN and NKMEMPAGES_MAX options. My crashing problems
completely disappeared.

I strongly believe that all systems should be as crash-free as possible,
yet most of the m68k ports have very modest settings in include/param.h -
port-amiga has:
#define NKMEMPAGES_MIN_DEFAULT  ((3 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT  ((3 * 1024 * 1024) >> PAGE_SHIFT)

This ends up giving all systems the number of pages that would correspond
to a machine with 12 megabytes of memory, regardless of the actual amount
of memory.

So... can anyone explain why there's such a disparity? Can anyone suggest
any reason to keep these values so low? Would anyone have any objections
to raising the values so that systems with lots of memory are just as
stable as the low memory ones?

Also see my original letter about this:

John Klos
Sixgirls Computing Labs