Results 1 to 5 of 5
Hi,
I'm developing a kernel module that requires more than 1GB RAM.
Most of this memory is taken from the slab, using kmem_cache_create() and kmem_cache_alloc().
Also using vmalloc() and kmalloc().
...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 08-04-2009 #1Just Joined!
- Join Date
- Aug 2009
- Posts
- 3
Huge memory on PAE kernel
Hi,
I'm developing a kernel module that requires more than 1GB RAM.
Most of this memory is taken from the slab, using kmem_cache_create() and kmem_cache_alloc().
Also using vmalloc() and kmalloc().
It works fine on RHEL4, kernel 2.6.9-42.ELhugemem, having 3.1 GB Low-Memory (LowTotal in /proc/meminfo).
Porting to RHEL5 kernel 2.6.18-128.el5PAE, there's only 715 MB Low-Memory.
My questions:
1. How can a kernel module allocate high memory?
2. Should using high memory degrade performance?
Note:
RHEL4 kernel is built with CONFIG_HIGHMEM4G=y
RHEL5 kernel is built with CONFIG_HIGHMEM64G=y
Thanks,
Mtz
- 08-05-2009 #2Just Joined!
- Join Date
- Aug 2009
- Posts
- 3
I will try to answer myself...
1. How can a kernel module allocate high memory?
Simply, by calling vmalloc().
2. Should using high memory degrade performance?
It should, but I'm not sure how much.
I'm also not sure if allocating more than 128MB VM will exhaust the 896-1024MB zone, and further degrade performance.
Comments, anyone?
Thanks,
Mtz
- 08-07-2009 #3Linux Guru
- Join Date
- Apr 2009
- Location
- I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
- Posts
- 10,160
Any reason why you cannot use an x86_64 kernel? If you can, then you don't have to worry about himem/lowmem issues. It will still run your 32bit applications without problem.
Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!
- 08-09-2009 #4Just Joined!
- Join Date
- Aug 2009
- Posts
- 3
Hi Rubberman,
Porting to x86_64 kernel is indeed in our roadmap; however, suspecting this porting will exceed our schedule, it was decided to currently stick to x86_32.
So for now, we'll probably have to manage with the current limitations:
LowTotal: 714 MB ; for kmalloc(), kmem_cache_alloc(), …
VmallocTotal: 114 MB ; for vmalloc()
I've tried to increase the vmalloc space as described in the link :
lkml.org/lkml/2006/6/28/155
but kept getting the described kernel panic… Any tips on this?
Thanks,
Mtz
- 08-09-2009 #5Linux Guru
- Join Date
- Apr 2009
- Location
- I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
- Posts
- 10,160
Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!


Reply With Quote

