Messages in this thread |  | | From | (Aaron Denney) | Subject | Re: java/old_mmap allocation problems... | Date | 18 May 2001 22:09:05 GMT |
| |
On Fri, 18 May 2001 08:33:05 +0200, firenza@gmx.net <firenza@gmx.net> wrote: > i'm having problems to convince java (1.3.1) to allocate more > than 1.9gb of memory on 2.4.2-ac2 (SMP/6gb phys mem) or more > than 1.1gb on 2.2.18 (SMP/2gb phys mem)... > > modifing /proc/sys/vm parameters didn't help either... the fact > that i can allocate more memory under 2.4 than under 2.2 lets > me hope that there is some possible kernel/vm tweaking that > would increase those limits...
Part of it is the way the kernel set's up the processes VM space. mmaps that don't ask for a specific address get mapped starting at 0x40000000, and the stack bottom is at 0xC0000000 - 1 page, and 0xC0000000-0xFFFFFFFF is reserved for kernel pointers. This only leaves 2 GB (- mapped in shared libraries, - stack space) for your mmapping. Both lowering the 0x40000000, and raising the 0xC000000 are fairly easy to do though. (I would suggest 0x1000000, and 0xE0000000. Note that ELF executables get mapped in around 0x08000000, and that shrinking the kernel address space too much will make it unhappy.)
In include/asm-i386/page.h, change __PAGE_OFFSET, which also changes PAGE_OFFSET, and TASK_SIZE In include/asm-i386/processor.h TASK_UNMAPPED_BASE In arch/i386/vmlinux.lds, the def'n of _start (or . in recent kernels) should be changed to __PAGE_OFFSET + 0x100000.
Part of it is undoubtedly the Java implementation. I haven't run across one that will let me use more than 2 GB, even with the above kernel tweaks, (or on solaris / UltraSparc).
-- Aaron Denney -><- - 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/
|  |