3.1.5: Upper limit on virtual memory allocation

3.1.5: Upper limit on virtual memory allocation

Post by Bill Wichs » Wed, 15 Apr 1992 00:39:26



Having just upgraded a 550 to 320M real memory and 600M virtual space, we were ready
to run our application which requires 280M to run.  Imagine my surprise when this
unexpectedly died after only allocating 250M.

I check the limits (/etc/security/limits) and increase the datasize to the available
virtual size.  Still, the limit sets to 257532 kbytes.

IBM informs me that this is a fixed size in then kernel and to use shared memory.
This is not an acceptable solution as too much Fortran code will need to be modified.

Does AIX 3.2 address this boundary problem?  Is there any other way around this other than through the use of shared memory?  Could this variable simply be changed in the kernel without effecting page tables, etc?

Thanks...Bill

--
********************************************************************************

* UUCP:     princeton!soil!bill      Princeton University                      *

* Phone:    609.258.4612             E114 E-Quad                               *
* FAX:      609.258.1270             Princeton, NJ 08544                       *
********************************************************************************

 
 
 

3.1.5: Upper limit on virtual memory allocation

Post by Frederick Staa » Wed, 15 Apr 1992 04:39:43



>Having just upgraded a 550 to 320M real memory and 600M virtual
>space, we were ready to run our application which requires 280M to
>run.  Imagine my surprise when this unexpectedly died after only
>allocating 250M.  I check the limits (/etc/security/limits) and
>increase the datasize to the available virtual size.  Still, the limit
>sets to 257532 kbytes.
>IBM informs me that this is a fixed size in then kernel and to use
>shared memory.  This is not an acceptable solution as too much Fortran
>code will need to be modified.
>Does AIX 3.2 address this boundary problem?  Is there any other way
>around this other than through the use of shared memory?  Could this
>variable simply be changed in the kernel without effecting page
>tables, etc?

The RS/6000 is a segmented architecture just like the 8086 line of
microprocessors.  The segement size is slightly larger (256Mbytes vs.
64Kbytes) but you run into the same fundamental limitations.  There is
no "easy" fix.  Programs can allocate 8 (double check my figure with
the latest documentation) 256 Mbyte shared memory segments to a a
single program, the other eight are used for the OS, program stack,
program heap, memory mapped files and the like.  For programs that
wish to use very large address spaces you need to write your own
"memory manager" to deal with switching between different shared
memory segements.

--
Frederick Staats

Santa Cruz Institute for Particle Physics
University of California at Santa Cruz

 
 
 

3.1.5: Upper limit on virtual memory allocation

Post by John Ger » Wed, 15 Apr 1992 10:44:28


Yes, AIX 3.2 does raise the data limit from 256M to (I believe) 2G.
Someone with personal experience of the mechanism should append
the details.

--

 
 
 

3.1.5: Upper limit on virtual memory allocation

Post by Bill Wichs » Wed, 15 Apr 1992 22:41:33


From IBM:

Under AIX 3.2, there is a new address space model enabling larger data spaces to be allocated to an application.  The o_maxdata field in the a.out header gets set to the amount of memory needed.  This can be set with the -b option to the linker.

For example, to use 8 256M segments (the maximum) the command to use is:
    cc -o program program.o -bmaxdata:0x80000000
(The number 0x80000000 is the number of bytes, in hexadecimal, =2Gbytes of addressable space)

Under AIX 3.1 a shared memory model must be used.  I have some info from IBM on how
to accomplish this if anyone is interested.

-Bill

--
********************************************************************************

* UUCP:     princeton!soil!bill      Princeton University                      *

* Phone:    609.258.4612             E114 E-Quad                               *
* FAX:      609.258.1270             Princeton, NJ 08544                       *
********************************************************************************

 
 
 

1. Upper limit of memory capacity of UP2000

According to the specification page of the API web site,
the upper limit of the memory capacity of the UP2000
board is just 2GB.  The UP2000 has eight slots.
Nowadays, we can find 512MB DIMMs in the market.
Will UP2000 detect and use more than 2GB of
total memory without trouble?

Also, the web page says that the upper limit in the
case of UP1100/1000 is 700+ MB only.
That is too small.

Do they use the same type of memory modules?
I wish to take the memory out from UP2000 and
to put them in a new UP1100.

Thanks.

Hugh

2. Configuring STB Nitro DVD with MPACT2 with X

3. upper limit on memory per process in FreeBSD ?

4. ppp script won't recognize BUSY string

5. Memory Allocation limits for HP/UX v10.0

6. PPP and unable to get to named web sites

7. elf executable & stack allocation in virtual memory?

8. Printing Problems with HPIIp

9. Physical vs. virtual memory allocation.

10. Memory allocation and de-allocation

11. virtual memory limit per user (ulimit -v)

12. FreeBSD 2.1.x and Virtual Memory (VM) limits

13. Limiting virtual memory?