memory management question

Sunil Jagannath (
Wed, 30 Oct 1996 00:50:44 -0600 (CST)

hi folks,

i'm working on a wireless ATM project and have a memory management
problem which i was hoping somebody could help me with.

i'm implementing a sliding window data link protocol using kmalloc to
allocate memory buffers. When a packet is to be sent from a source
node, a buffer is allocated and put into a "write queue" until it
gets an ack from the receiver at the other end. Once an ack is
received, the corresponding buffer is freed. When i attempt to send
a very large burst of data down my protocol stack, i get a
"couldn't get a free page" error from kmalloc. i believe that
i might be hitting the limit of available kernel memory since
there are already a large number of outstanding buffers allocated
and sitting on the write queue which havent been freed, at the time
the kmalloc failure happens.

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.

i'd appreciate any suggestions on how to overcome this problem

thanks very much,


PS: since i havent subscribed to linux-kernel, i'd appreciate if anybody
replying copies the reply to me at :

Sunil Jagannath
Graduate Studies,
Telecommunications and Information Sciences Lab.,
University of Kansas.