Operating System - HP-UX
1833710 Members
2508 Online
110063 Solutions
New Discussion

Allocation Shared Memory Limit 2.75GB wolkaround

 
gm200
Occasional Contributor

Allocation Shared Memory Limit 2.75GB wolkaround

I know from the manuals that in general a 32bit executables (on a superdome 64bit S.O.HP-UX11v2) can allocate a maximum of 4GB of ram (cause address limit).
In addition a SHMEM MAGIC program can at least manage 2.75GB shared memory size because 1GB size is dedicated to STAK and DATA and 0.25GB to I/O Mapping.
Someone knows if exists a wolkaround to increase the SHARED MEMORY size allocation over the limit of 2.75?
6 REPLIES 6
Peter Godron
Honored Contributor

Re: Allocation Shared Memory Limit 2.75GB wolkaround

Hi,
easiest way is probably to convert to 64bit executable!
Jeff Schussele
Honored Contributor

Re: Allocation Shared Memory Limit 2.75GB wolkaround

Hi,

No - using SHMEM_MAGIC the absolute limit for shared memory is 2.75 GB.
You could grow the data quad to 3.75 if the source is written properly, but the absolute max for sh mem is 2.75.

Your best bet is memory windows or moving to 64-bit.

Rgds,
Jeff
PERSEVERANCE -- Remember, whatever does not kill you only makes you stronger!
gm200
Occasional Contributor

Re: Allocation Shared Memory Limit 2.75GB wolkaround

I have read on an HP technical white paper ("Adaptative Address Space") the possibility to use all the "4GB, i.e. all the 4 quadrants," [...] "for the process to consume in any manner it chooses" by using the MPAS process attribute. Can someone provide some information about? Can I use this option in conjuntion with the memory window functionality?
Ted Buis
Honored Contributor

Re: Allocation Shared Memory Limit 2.75GB wolkaround

There is a white paper on Memory Windows at www.docs.hp.com

specifically at
http://docs.hp.com/en/943/memwn1_4.pdf

This is for 11.0, but I doubt that much has changed, if you are running on pa-risc.

If you are running on Itanium, you are running under the Aries dynamic translator and I don't know how much of the memory magic or memory windows has been implemented. You should check on the limitations of Aries. Again, I would look at the docs.hp.com web site for the details.
Mom 6
gm200
Occasional Contributor

Re: Allocation Shared Memory Limit 2.75GB wolkaround

Instead of running different 32bit processes attaching to the same shared memory area, could I modify code and make each process istance use local memory? In this case, by use the +p3q and +p4q attributes, could I allocate about 3,75 GB memory for each process?

thanks
GM200
Jeff Schussele
Honored Contributor

Re: Allocation Shared Memory Limit 2.75GB wolkaround

Well...I reviewed my notes again & I *still* think that 2.75 GB will be your limit.
I think this is due to the fact that Quad 2 is for program data and not shared objects.
This would leave Quads 1 (1GB), 3 (1 GB) and 4 (.75 GB) for a total of 2.75
And to do this the binary would have to be compiled with EXEC_MAGIC & then chatr'd with SHMEM_MAGIC.

But I could be wrong....

I do see a reference in my notes that if the source is written such that a mallopt() call precedes all malloc() calls with M_ENABLE MMAP arguments you could grow to 3.75 GB of which you could only actually get about 3.5 -> 3.6 GB to actually use.

Rgds,
Jeff
PERSEVERANCE -- Remember, whatever does not kill you only makes you stronger!