A hole in kernel space!

From: Pannaga Bhushan (bhushan@multitech.co.in)
Date: Wed Nov 06 2002 - 06:57:50 EST


Hi all,
        I am looking for a setup where I need to have a certain amount
of data always available to the kernel. The size of data I am looking at
is abt
40MB(preferably, but I will settle for 20MB too) . So the normal kmalloc
will not help me. So what I did was, I created a hole in kernel space by
putting
the following line in vmlinux.lds

    ALIGN(4096);
 __hole_start = .;
    . = . + 0xmy_size;
 __hole_end = .;

First, I put these lines in code segment and found that 'my_size'
cannot go beyond 0x500000(5MB) . Any larger value , the kernel image
refuses to
boot up. I found the same problem with these lines being in data segment
or in the bss segment.

But putting these line after

_end = .;

line in vmlinux.lds, I am able to give 0x1700000(17MB) to my_size and
still boot with that kernel image.

My questions are :

1. Is there any other way I can get to keep 40MB(or even 20MB) of
contiguous kernel memory space ?

2. Abt the 17MB hole, I am able to use after the _end = .;
.... is this 17MB really there in kernel image?('cos it isn't in any
segment and also it
appears after _end).
        if yes, are the pages corresponding to this region swappable or
is it that since this hole appears in kernel image, it is locked to a
physical space
and this is never swapped. (basically, i want by data in kernel space
always available to kernel without having to bother abt swapping the
pages back)

Thanx in advance,
Pannaga Bhushan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 07 2002 - 22:00:42 EST