Re: Memory in Kernel space

Paul Gortmaker (gpg109@rsphy6.anu.edu.au)
Fri, 31 May 1996 17:02:55 +1000 (EST)


- From Balaji Srinivasan (balaji@eecs.ukans.edu)
Thu, 30 May 1996 14:00:36 -0600 (CDT)

> I am modifying the kernel to do something that requires huge amounts of
> memory in the kernel space. I allocate this memory in 4K blocks.
> How much memory can I actually allocate in the kernel space as compared
> to the RAM that I have (I have a 32 MB RAM and I need to allocate 25MB
> or so)

Wow. If you need that much, then you are better off not letting the
kernel have it in the first place. Simply boot with "mem=7m" and
you can meddle with the upper 25MB as you see fit. The kernel won't
touch it, and you don't need to futz about with kmalloc().

> secondly If i increase the RAM to 128 MB can I use around 120 MB in
> kernel space. What problems might I expect then...??

None. Just boot with mem=8m and the upper 120MB are untouched. Things
like the Xservers access really high regions for memory mapped SVGA
chipsets, so it is being done all the time. (Make sure you don't have
a memory conflict with such a card like the CL542x tho')

> PS: Will the amount of memory that can be allocated go down with time
> (assuming that no other processes are running at that time) (ie. will
> there be any sort of fragmentation??)

Yes, there will be. An example of where this creates a problem is when
the net code tries to reassemble a huge (>16k) fragmented IP packet
and all the avail. memory is in 4k and 8k blocks. Result: Screen floods
with "ip_queue_glue: no mem for gluing queue 0xNNNNNN".

Paul.