How to Increase User Virtual Memory Allocation ?

guyton at RAND-UNIX.ARPA guyton at RAND-UNIX.ARPA
Sat Jun 16 06:12:22 AEST 1984


From:  Jim Guyton <guyton at RAND-UNIX.ARPA>

Here are some notes that I made from a paper on how to do
this written by the folks at USC-ISI.  They had to figure
out how to do it in order to run reasonably sized Vax
Interlisp programs ....

-- Jim

--------------------Forwarded notes

Change DMMIN and NDMAP in h/dmap.h

#define NDMAP 24                /* Was 16 */
#define DMMIN 128               /* Was 32 */

in h/vmparam.h

#define MAXDSIZ (22*1024-128-SLOP)
#define MAXSSIZ (22*1024-128-SLOP)

Some explaination from the Interlisp notes:
--------------
  DMMIN is increased by 400% to enlarge the minimum allocation
(for data and stack) per process.  NDMAP is increased by 50% to
enlarge the total number of allocations per process.  Thus, for
data or stack segments, a process is initially given a chunk of
128 (DMMIN) blocks.  If necessary, a subsequent chunk of 256,
then 512, and finally 1024 blocks is given.  The last chunk size
of 1024 (DMMAX) block is repeatedly allocated 21 times, if
necessary, until 24 (NDMAP) allocations are made in all.


  MAXDSIZ and MAXSSIZ are increased by 182% to enlarge the total
allocation (for data and stack) per process.  This patch must be
made in conjunction with the above change to dmap.h

  MAXDSIZ and MAXSSIZ can each comprise 21 1024-block-chunks, plus
chunks of size 128, 256, and 512.  The aggregate of the latter
chunks is equivalent to 1024-128.  Hence, the maximums

	21*1024 + (1024-128) = 22*1024-128.

-------------

They then even give a short C pgm that calculates it as a function
of DMMIN, DMMAX and NDMAP.  Basically, it just starts with DMMIN,
doubles the block size each time until it reaches DMMAX, and continues
with DMMAX until NDMAP total allocations have been made.

--------------------End of old notes



More information about the Comp.unix.wizards mailing list