[comp.unix.wizards] Memory boards and data space

sampath@mars.njit.edu (sampath s k) (02/03/91)

   Hi,

       Program:
       --------
       I have a program that builds a huge graph. During the 
       graph building phase a lot heap space (malloc()) is
       used and a lot of stack space is used during the graph
       traversal as it is extremely recursive.

       Environment:
       --------
       The above mentioned program is tested on an IBM RS6000 
       (model 530 AIX 3.1) with ~ 80 MB of real memory and 256 MB 
       of paging space.
       
       Problem:
       --------
       The program is abnormally terminated during the graph traversal
       phase for lack of paging space. Increasing the paging space beyond
       256 MB doesn't seem to help. 

       Question:
       ---------
       Is it possible possible for the above mentioned program to work
       if I thrown in extra memory boards? Do extra memory boards
       increase the data (heap+stack) space? Please shed some
       light on this issue. Thanks for your time.

                     -- sampath         sampath@mars.njit.edu  

dichter@soleil.sps.mot.com (Carl Dichter) (02/06/91)

I am not all that familiar with AIX, but on many systems a corruption
of heap can cause malloc() to fail as if it were out of memory.

On SUN OS 4.03, and 386 PCs under Interactive, I have seen heap 
get corrupted when an allocated area was overwritten by only ONE BYTE. 

Some systems, such as HP/Apollo, are more tolerant of this, and to me
that makes them LESS desirable as a development platform.

I suggest that you check all your allocations to make sure they are
adequate, and look for places that you may be overwriting. This often
happens on read()'s, and also on sting functions where the source
string is not NULL terminated.

Have fun.

Carl R. Dichter 
Motorola ASIC Division

frank@leopard.austin.ibm.com (02/06/91)

>        The program is abnormally terminated during the graph traversal
>        phase for lack of paging space. Increasing the paging space beyond
>        256 MB doesn't seem to help.

Are you sure that it is being terminated for 'paging space' and not because
you are out of heap?  I forget what the default heap is, but look into the
ulimit command (for ksh or sh).  To increase your limit, have the administrator
use smit to change your user options.

>        ---------
>        Is it possible possible for the above mentioned program to work
>        if I thrown in extra memory boards? Do extra memory boards
>        increase the data (heap+stack) space? Please shed some
>        light on this issue. Thanks for your time.

No, extra real memory does not effect your data, heap or stack space.  Also,
there is a hard limit of 256 MB per segment.  This means that unless you do
some programming tricks (which I don't know the specifics of) you are stuck
at this limit.

- Frank Feuerbacher


Disclaimer: I don't speak for my employer and they don't speak for me.