From: DEREK@U.WASHINGTON.EDU
Newsgroups: comp.os.vms
Subject: Re: Boot-time quotas
Date: 30 Jul 92 16:14:00 GMT
Distribution: world
Organization: The Internet

Bob Marshall of the Lockheed Missiles & Space Co. wrote:

>Where does the system initialization process get its quota values from? I
>had always assumed that it was from the UAF record for username SYSTEM,
>but it appears that they actually come from the settings of the PQL
>SYSGEN parameters. My evidence is that I run an image from SYSTARTUP_V5.COM
>which requires a page file quota of about 26,000, and I was getting an
>"Exceeded quota" error from the image activator. Since username SYSTEM
>has a page file quota of 150,000 I was a little bit surprised. But I
>noticed that PQL_DPGFLQUOTA was set at 24,000, so I assume that was
>the explanation. I've increased this parameter to 30,000, but I haven't
>had a chance to reboot and test it yet. Also, once the system comes up
>I can log into SYSTEM interactively and run the image with no problems.
> 
>Can someone confirm/refute my suspicion?

I can!  I can!    Now it can be told....
		(HEY!  who said that?!  get that bum out of here!  NOW!)  :)

Wow!  I thought that no one else cared about this stuff!  :)

This particular issue has been brought to the attention of certain of the
VMS development team, by the way.  (No names, though.  They know who they
are.)  :)

I ran into a similar problem when I tried to increase the number of
subprocesses that the startup procedure can create.  Here's what I found
out.

The initial quotas are hard coded into VMS.  As I recall, they are in
SYS.EXE, but the exact location is not too important.  The point is that
they are not retrieved from SYSGEN parameters, nor from the UAF.

When VMS is booting, it starts to create the VMS environment.  (You know,
process context, S0 space, the PCB vector, etc...)  One of the first processes
to get created is the STARTUP process.  As I said, the initial quotas are
taken from hard coded values.  Before process creation completes, however,
these quotas are compared against some of the PQL SYSGEN parameter values.
If the PQL quota is larger than the hard-coded default, then the PQL value
is taken.

NOTE:  I intentionally did not state WHICH PQL parameter is checked.
       You would THINK that the PQL_Mxxxxx parameters would be checked, but
       this isn't always the case.  I don't know the exact versions, but in
       earlier VMS V5.x versions, the check was made against the PQL_Dxxxxx
       parameters.  Sometime between V5.3 and V5.4-1 (I believe) the code
       was changed to look at the PQL_Mxxxxx parameters.  As I recall,
       however, not all of the parameters are checked.

What I did:

I set BOTH PQL_DPRCLM and PQL_MPRCLM to 40 in my CURRENT SYSGEN parameters.
The boot process then RESETS these to our desired values.  The reason I was
after this was so I could make all of our disks mount "simultaneously".
(We do MOUNT/REBUILD normally.  I know, it's supposed to be fine without
it, and we ran that way for about 4 years.  However, we had too much trouble
with apparent disk corruptions this way.)  This meant that the old, serial
disk mounting procedure could take as long as 3 hours to mount all of the
disks.  Now, it takes at most 15 minutes to mount and rebuild all of the
disks.  Now we don't have problems with so many students having messed up
disk quotas.  Now we don't have problems with multiply allocated disk
blocks.

-Derek S. Haining
 University Computing Services
 University of Washington
 Seattle, Washington  98195 
 (206) 543-5579

 DEREK@MAX.BITNET
 DEREK@MAX.U.WASHINGTON.EDU