[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: More than 2, but less than 3 GiB per process memory?



Hello Ron!

You wrote:
> Malte [...] wrote:
> > 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.

That was very helpful and explains a lot. I wonder whether a comprehensive 
documentation like this could be of use in some more official place, hmm.

> > [...]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.

So true. I actually tried changing the PAGE_OFFSET and TASK_UNMAPPED_BASE 
divisor in an experimental kernel; this yielded no change for the application 
(the value is probably hardcoded in libc6' malloc and g++'s new 
implementation? Using the mmap system call directly might have worked, but 
having to recompile the base libs to make this work seemed a little extreme)

> > PS: Please Cc: me if possible
> 
> If you send question to the list, you should expect the answer
> to only go to the list.

Well, I know that answering to the list is necessary (otherwise other people 
might not profit from the solutions found) and I planned to reply to the 
list. 

Using Debian's web based archive and setting the right References: and 
In-Reply-To: headers is somewhat error-prone though (I hope I did not make 
any mistakes). A cc: makes it much easier to use the mailer's reply functions 
so threading is not broken. Also, the web archive is a pull medium, not a 
push medium, so not getting cc:ed is suboptimal.

The other alternative is of course subscribing to the list, which I normally 
do, but bandwidth isn't necessarily free everywhere and debian-user is an 
extremely high-traffic list. (I'm on dozens of lists, including debian-devel, 
but debian-user is just madness unfortunately even with good MUAs). You might 
feel profiting from the answers given here while not subscribing is still 
unfair, but I actually can't see what enabling the web archive to be used 
instead hurts.

I'm not going to reply to the reply-to thread since it's a tangential issue at 
best.

Thanks for taking the time,
-Malte



Reply to: