User manual

Interprocessor Synchronization Window
54
Non-preemptable code trying to lock interlocked queue header with BBSSI instruction while
executing at IPL >= 3 must use BBSSI retry count yielding total number of instructions in retry
loop not less than 3 * min(900000, LOCKRETRY). If retry loop drops IPL below 3 in the interim,
retry count should be restarted.
Any application or component failing to meet these requirements can only be executed in
multiprocessor mode on VAX MP if portable interlock is selected, which is the default setting.
If an application or component not meeting listed requirements is executed on VAX MP with native
interlock mode enabled, described retry loops can timeout and cause component or application to fail.
They will not timeout when executed on VAX MP using portable interlock mode.
We are not aware at present time of any application or component that fails to meet these
requirements. Base OpenVMS system itself meets them. If you are sure all of your VAX software
executed under VAX MP meets them too, you may be able to increase system performance by enabling
native-mode interlock with the following VSMP LOAD options:
$ @SYS$SYSROOT:[VSMP]VSMP$LOAD INTERLOCK=NATIVE SYNCW=ILK
or:
$ @SYS$SYSROOT:[VSMP]VSMP$LOAD INTERLOCK=NATIVE SYNCW=ALL
Note that described limitations of native mode are not “failures” of synchronization window mechanism,
but rather reflect its design goals. Synchronization window is designed to provide highest possible
scalability of multiprocessor system and impose least constraining synchronization compatible with the
needs of operating system. Therefore it constrains only the patterns that OpenVMS is known to actually
use or that OpenVMS and well-written applications can reasonably be expected to use. Furthermore,
synchronization window constrains these patterns only to an extent (synchronization window size) they
need to be constrained to in order to assure their stable execution. Synchronization window by design
avoids over-constraining the system and hampering its scalability for the sake of supporting any and all
conceivable patterns.
If widest range of synchronized patterns is a desired goal, it is recommended to use portable interlock
mode, or better yet, portable interlock mode in conjunction with synchronization window. The latter
combination may produce slightly less scalable configuration, but will provide support for a wider set of
synchronization patterns.