32bit app memlimit on x86_64?
Ryan Sweet <[email protected]> Mon, 3 Nov 2003 13:17:34 +0100 (MET)
| Newsgroups | gmane.linux.redhat.taroon |
|---|---|
| Message-ID | <Pine.LNX.4.44.0311031236120.7253-100000@core-0> |
What is the limit on contiguous memory available to 32bit apps using the
release kernel and glibc on an opteron?
I have a commercial 32bit app that fails alloatiing more than 800MB of
RAM. The vendor referred me to this patch:
http://www.daimi.au.dk/~kasperd/linux_kernel/task_unmapped_base/
but I am wondering why it is necessary on the opteron.
I've looked at linux-2.4.21-4.EL/include/asm-x86_64/processor.h:
/*
* User space process size: 512GB - 1GB (default).
*/
#define TASK_SIZE (0x0000007fc0000000)
/*
* 32 bit user space process size - determined by personality
*/
#define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? 0xc0000000 : 0xFFFFe000)
#define TASK_SIZE_32 IA32_PAGE_OFFSET
/* This decides where the kernel will search for a free chunk of vm
* space during mmap's.
*/
#define TASK_UNMAPPED_32 0xa0000000
#define TASK_UNMAPPED_64 (TASK_SIZE/3)
#define TASK_UNMAPPED_BASE \
((current->thread.flags & THREAD_IA32) ? TASK_UNMAPPED_32 : TASK_UNMAPPED_64)
but I don't yet understand how the personality structures work nor do I
really understand where the #define TASK_UNMAPPED_32 0xa0000000 limit will
fall.
any pointers for a better understand of this issue would be
greatly appreciated.
thanks,
-ryan
--
Ryan Sweet <[email protected]>
Atos Origin Engineering Services
http://www.aoes.nl
--
Taroon-beta-list mailing list
[email protected]
http://www.redhat.com/mailman/listinfo/taroon-beta-list