On Fri, 2005-09-23 at 14:45 +0200, Malte Cornils wrote:
> Hello,
>
> we've been trying to make a program (ITK/VTK image processing for a university
> project) work. Unfortunately, the process needs slightly above 2 GiB of
> virtual memory.
>
> Judging from the documentation I've seen, on 32bit systems I should be able to
> allocate up to 3 GiB of virtual memory (1 GiB of 32bit address space is
> reserved for the kernel).
>
> However, our test case for this terminates when trying to allocate more than 2
> GiB of memory, even though we have a really big swap file.
>
> Does anyone have a clue why 2 GiB is the limit?
http://www.puschitz.com/TuningLinuxForOracle.shtml#AddressMappingsOnLinux
0GB-1GB User space - Used for executable and brk/sbrk allocations
(malloc uses brk for small chunks).
1GB-2GB User space - Used for mmaps (shared memory), shared libraries
and malloc uses mmap (malloc uses mmap for large
chunks).
2GB-3GB User space - Used for stack.
3GB-4GB Kernel Space - Used for the kernel itself.
> Would using a swap partition
> instead of a swap file help? The 64G HIGHMEM kernel config option does not
> seem to make a difference. On a real AMD64 system, the program works fine
> with >2 GiB RAM, as was expected. Is there any way to make this work, besides
> changing the algorithm to use less than 2 GiB of memory?
No.
> We're using Debian sarge (3.1) with its provided 2.6.8 i386 kernels. Any hint
> would be much appreciated!
>
> -Malte
>
> PS: Please Cc: me if possible
If you send question to the list, you should expect the answer
to only go to the list.
--
-----------------------------------------------------------------
Ron Johnson, Jr.
Temporarily not of Jefferson, LA USA
PGP Key ID 8834C06B I prefer encrypted mail.
"There is no shadow of protection to be had by sheltering behind
the slender stockades of visionary speculation, or by hiding
behind the wagon-wheels of pacific theories."
Madame Chiang Kai-Shek
Attachment:
signature.asc
Description: This is a digitally signed message part