User manual

VAX MP SIMH console extensions
59
desirable to keep simulator’s paging rate to a minimum. Note that this is not required for
correctness of operation, but only for better scalability and performance.
VAX MP provides user-controllable mechanisms intended to reduce paging. These mechanisms
are specific to host operating system.
Note that these mechanisms are not intended to prevent paging altogether, but merely to
reduce paging rate to a level that does not cause any significant degradation of system
scalability and responsiveness. Some paging will always happen at a minimum of pageable
operating system code and paged system pool accessed on behalf of the simulator’s process.
Under Microsoft Windows, VAX MP provides a way to increase working set size of the simulator
process. Working set size is controllable with two configuration variables accessed via SIMH
console commands DEPOSIT and EXAMINE. These variables, named WS_MIN and WS_MAX,
define minimum and maximum size of VAX MP process working set expressed in megabytes. As
a rule of thumb, it is recommended to set WS_MIN to the size of VAX “core memory” as defined
by SET CPU command (e.g. SET CPU 256M) plus extra 40 MB for WS_MIN and extra 100 MB for
WS_MAX. For example, for 256 MB VAX memory configuration, perform
sim> DEP WS_MIN 300
sim> DEP WS_MAX 360
Alternatively and easier, setting variable WS_LOCK to 1 causes both WS_MIN and WS_MAX
being set to appropriate values:
sim> DEP WS_LOCK 1
Setting WS_LOCK to 1 will also automatically set WS_MIN and WS_MAX to heuristically
reasonable values, as described above. However if you want fine-grain control, you can set
WS_MIN and WS_MAX directly instead. Note that setting either WS_MIN or WS_MAX to non-
zero value will also set WS_LOCK to 1.
Linux does not have a notion of per-process working sets. It has one system-global working set
for all the processes in the system and the operating system itself. LRU-like page replacement is
performed on this system-wide working set as a whole. It is possible to lock process pages into
this working set and thus effectively in memory. This is achieved by “DEPOSIT WS_LOCK 1” as
described above. For locking to work on Linux, caller’s account must have high
RLIMIT_MEMLOCK (definable on per-account basis in
/etc/security/limits.conf), or VAX
MP executable file should be granted privilege CAP_IPC_LOCK.
If you want to have a cross-platform VAX MP configuration script file usable both on Windows
and Linux machines, you can define either WS_MIN/WS_MAX or WS_LOCK in it. Setting
WS_MIN or WS_MAX to non-zero value causes WS_LOCK to be set to 1, and conversely, setting
WS_LOCK to 1 causes WS_MIN and WS_MAX being set to a heuristically calculated values.