Giovanni Gigante wrote on Tue, Nov 03, 2009 at 03:41:15PM +0100:
>
> >>I am on debian linux 5.0.3, kernel 2.6.26-2-686-bigmem, SBCL 1.0.29
> >>
> >>
> >
> >That's 32 bit, right?
> >It won't work. If you want a single process to use more than about
> >3GB of virtual memory it will need to be a 64 bit process (on a 64 bit
> >machine).
> >
> >
> >
>
> My CPU is a Intel Q6600. I know that the right way would be a 64-bit
> kernel, but unfortunately at the time this machine was installed the
> wrong choice was made, and now it would be really painful to rebuild the
> whole system from scratch.
> So, looking for a simpler solution, when I installed more RAM I switched
> to this 32-bit debian kernel "bigmem", which means it has PAE. I am no
> expert at these matters, but I had read that PAE allows for 64GB RAM
> maximum, with a limit of 4GB per process.
> Which is why I tried --dynamic-space-size 4000. (a bit less than those 4GB).
> Unfortunately, it doesn't seem to work.
The PAE kernel does not extend the virtual memory available to a
single process in any way.
> So I still have two doubts:
>
> 1) what is the maximum theorical value for --dynamic-space-size in these
> conditions?
With a 32 bit kernel it is the same regardless of how much RAM you
have and regardless of whether you use PAE or not.
The only exception is the 4GB/4GB VM split patch which gives you a
gigabyte more.
> 2) why mmap still fails under that value? (maybe it needs contiguous
> memory or something like that?) for example, on my system a value of
> 2500 holds, while one of 3000 gives:
>
> mmap: Cannot allocate memory
> ensure_space: failed to validate -1149239296 bytes at 0x09000000
> (hint: Try "ulimit -a"; maybe you should increase memory limits.)
>
> and ulimit -a says:
> core file size (blocks, -c) 0
> data seg size (kbytes, -d) unlimited
> scheduling priority (-e) 0
> file size (blocks, -f) unlimited
> pending signals (-i) 55296
> max locked memory (kbytes, -l) 32
> max memory size (kbytes, -m) unlimited
> open files (-n) 1024
> pipe size (512 bytes, -p) 8
> POSIX message queues (bytes, -q) 819200
> real-time priority (-r) 0
> stack size (kbytes, -s) 8192
> cpu time (seconds, -t) unlimited
> max user processes (-u) 55296
> virtual memory (kbytes, -v) unlimited
> file locks (-x) unlimited
>
> which does not seems the source of problem.
You issue at that point is not only the available space, but
fragmentation.
Although you have 3 GB total free, the OS mapped dynamic libraries and
assorted other junk inside it so you don't have a contiguous area of 3
GB. The dynamic heap needs to be contiguous.
Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@...> http://www.cons.org/cracauer/
FreeBSD - where you want to go, today. http://www.freebsd.org/
|