Re: memory management question

David S. Miller (davem@caip.rutgers.edu)
Wed, 30 Oct 1996 02:05:25 -0500 (EST)


Date: Wed, 30 Oct 1996 00:50:44 -0600 (CST)
From: Sunil Jagannath <sunil@tisl.ukans.edu>

The machine i'm using has 32M of RAM and i'm testing the data path
using ttcp_atm programmed to send 2K blocks of 8Kb size each. i was
wondering how the RAM is partitioned on a linux box and whether
there is any way of increasing the maximum size of the allocation
for kernel memory.

In the kernel are you allocating buffers greater than PAGE_SIZE? (4096
bytes on an Intel) If so, this is dangerous and not guarenteed to
always work even if memory is available.

This is because the free pages in the system are kept track of via
buddy system (See Knuth, Fundamental Algorithms, very last section of
Chapter 2 for details). Thus you can end up with a situation where
the free page pool is fragmented, lots of single pages are available
to use but very few or no 2-page (or larger orders of PAGE_SIZE
magnitude) clicks can be "buddied up" to satisfy your request.

I'm sure people doing fddi and ATM drivers (Werner?) have run into
this problem. Maybe they can tell you how they have dealt with this
situation.

David S. Miller
davem@caip.rutgers.edu