User manual

VSMP Reference
42
VSMP dynamic patches
inhibitable with NOPATCH option
XDELTA
This patch is required when using XDelta debugger. XDelta by itself is not aware of
multiprocessing capabilities of VAX 3900 and does not know how to store XDelta per-CPU
context on this machine. This patch provides XDelta with such knowledge. Without this patch
XDelta cannot be properly operated when VAX MP system has more than one processor in
active set. This patch is automatically disabled if VSMP LOAD detects that XDelta is not
loaded. Delta debugger does not require this patch and, unlike XDelta, can be used without
it.
CHSEP
This patch modifies behavior of VMS executive SCH$CHSEP routine to wake up just one
rather than all idle CPUs when a process becomes computable. This patch removes overhead
of waking up all idle virtual processor on every scheduling event. It can be disabled at the
cost of increasing this overhead.
RESCHED
This patch modifies behavior of VMS executive SCH$CHSEP routine in a manner similar to
CHSEP patch. Other descriptions from CHSEP patch apply.
LOCKRTRY
This patch modifies the value of SYSGEN parameter LOCKRETRY to enlarge it to 900,000
(unless it was already set higher) to make it consistent with hardwired value used by VMS
interlocked queue operations macros. Disabling this patch to use lower value (such as default
value 100,000) will tighten inter-CPU synchronization window and degrade VAX MP system
scalability.
NUMTIM
This patch corrects SYS$NUMTIM system service. In regular OpenVMS this service
(SYS$NUMTIM) retrieves current system time from EXE$GQ_SYSTIME location without
acquiring HWCLK spinlock, which may result in incorrect value being read, including totally
corrupt value. Probability of this corruption increases when VAX processor is simulated on
present-day CPUs, compared to the original VAX. NUMTIM patch provides appropriate
spinlock acquisition by SYS$NUMTIM when reading system time variable.
MFYCAP
This patch modifies executive routines SCH$ADD_CPU_CAP and SCH$REMOVE_CPU_CAP to
ensure that idle virtual CPUs are waken up after CPU capability modification. In practical
terms it ensures that START /CPU and STOP /CPU commands are always executed promptly
and shutdown of virtual CPU in idle sleep state is not delayed by a fraction of a second.
UCBTMO,
CRBTMO
These patches are currently not in use and can be disabled if requried. They are meant to
support extension of timeouts on virtual devices to counteract thread preemption, however
at the time no VAX MP virtual device relies on this option.
PU1 PU7
These patches apply to PUDRIVER (UQSSP port driver) and are used if SIMH MSCP disk (RQ)
or MSCP tape (TQ) controllers are configured. These patches must be enabled for MSCP
storage port to operate properly in a multiprocessor configuration, otherwise memory and
data corruption can result.
Patch PU6 can fail to install if MSCP tracing is enabled on the port (typically using some
diagnostic tool). In this case stop tracing, run VSMP LOAD to install the patches, then restart
the tracing.
XQTIMXMT
This patch extends transmit timeout period on DEQNA and DELQA controllers from the