Re: memory management question

Alan Cox (
Wed, 30 Oct 1996 10:30:54 +0000 (GMT)

> 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 kernel will let you allocate all the memory in the machine. That is
why the various protocol stacks keep memory counters. What should be
happening is you keep memory counters and one windows worth of data in
kernel (arguably you dont even need that except for performance issues
when retransmitting). You draw other data from user space as you need it.