- 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().
I don't think it's quite that simple. I tried this once, and if I recall
correctly, the memory above the mem= value won't be mapped at all and the
kernel will fault trying to access it. There probably is a way, but it's more
complicated than this.
I think the easiest approach would be to add another call of the form:
memory_start = whatever_init(memory_start,memory_end);
into linux/init/main.c and let whatever_init ask for whatever it wants to
reserve.
Leonard