==== Introduction ====
You notice that NONPAGED POOL expansion has been occurring on the system. How would you determine who has done the most recent allocations?
==== Details ====
First you will need to have one of these two SYSGEN parameters enabled. SYSTEM_CHECK or POOLCHECK.
SYSTEM_CHECK
SYSTEM_CHECK investigates intermittent system failures by
enabling a number of run-time consistency checks on system
operation and recording some trace information.
Enabling SYSTEM_CHECK causes the system to behave as if the
following system parameter values are set (although the values
of the following parameters are not actually changed):
Parameter Value Description
BUGCHECKFATAL 1 Crash the system on nonfatal
bugchecks.
POOLCHECK %X616400FF Enable all poolchecking, with
an allocated pool pattern
of %x61616161 ('aaaa') and
deallocated pool pattern of
x64646464 ('dddd').
MULTIPROCESSING 2 Enable full synchronization
checking.
While SYSTEM_CHECK is enabled, the previous settings of the
BUGCHECKFATAL and MULTIPROCESSING parameters are ignored.
However, setting the parameter POOLCHECK to a nonzero value
overrides the setting imposed by SYSTEM_CHECK.
Setting SYSTEM_CHECK creates certain image files that are capable
of the additional system monitoring. These image files are
located in SYS$LOADABLE_IMAGES and can be identified by the
suffix _MON. For information about the type of data checking
performed by SYSTEM_CHECK, see the description of the ACP_
DATACHECK parameter. For information about the performance
implications of enabling SYSTEM_CHECK, see OpenVMS Performance
Management.
POOLCHECK
This special parameter is used by HP and is subject to change. Do
not change this parameter unless HP recommends that you do so.
POOLCHECK is used to investigate frequent and inexplicable
failures in a system. When POOLCHECK is enabled, pool-checking
routines execute whenever pool is deallocated or allocated.
Two loadable forms of SYSTEM_PRIMITIVES.EXE are available at
boot time. The default image, which contains no pool-checking
code and no statistics maintenance, is loaded when POOLCHECK
is set to zero. When POOLCHECK is set to a nonzero value, the
monitoring version of SYSTEM_PRIMITIVES.EXE, which contains both
pool-checking code and statistics maintenance, is loaded.
Setting the SYSTEM_CHECK parameter to 1 has the effect of setting
POOLCHECK to %X616400FF. For further information about pool
checking, see the OpenVMS VAX Device Support Manual, (which is
archived).
POOLCHECK is a DYNAMIC parameter. However, for a change in its
value to have any effect, POOLCHECK must be non-0 at boot time
(to load the monitoring version of SYSTEM_PRIMITIVES.EXE).
NOTE: SYSTEM_CHECK is not dynamic and would require a system reboot to take effect. POOLCHECK is dynamic and can be enabled on the live system.
Booting the system with POOLCHECK non-zero or SYSTEM_CHECK = 1 loads the monitoring version of the system_primitives loadable image. This records allocations/deallocations of nonpaged pool in a ring buffer whose size is controlled by the SYSGEN parameter NPAG_RING_SIZE. This recording takes place regardless of the pool poisoning/checking enabled bits in the lower bit positions of the poolcheck parameter. To display these allocations/deallocations use this command:
SDA> SHOW POOL /RING