On Mon, Jun 20, 2011 at 04:16:58PM +0200, Florian Pflug wrote:
> On Jun20, 2011, at 15:27 , Radosław Smogura wrote:
> > 1. mmap some large amount of anonymous virtual memory (this will be maximum 
> > size of shared memory).
> > ...
> > Point 1. will no eat memory, as memory allocation is delayed and in 64bit 
> > platforms you may reserve quite huge chunk of this, and in future it may be 
> > possible using mmap / munmap to concat chunks / defrag it etc.
> 
> I think this breaks with strict overcommit settings (i.e. 
> vm.overcommit_memory = 2 on linux). To fix that, you'd need a way to tell the 
> kernel (or glibc) to simply reserve a chunk of virtual address space for 
> further user. Not sure if there's a API for that...

I run discless swapless cluster systems with zero overcommit (i.e.
it's entirely disabled), which means that all operations are
strict success/fail due to allocation being immediate.  mmap of a
large amount of anonymous memory would almost certainly fail on
such a setup--you definitely can't assume that a large anonymous
mmap will always succeed, since there is no delayed allocation.

[we do in reality have a small overcommit allowance to permit
efficient fork(2), but it's tiny and (in this context) irrelevant]

Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.

Attachment: signature.asc
Description: Digital signature

Reply via email to