Specifications

Data Structures
1.18 Spinlock Data Structure (SPL)
1.18 Spinlock Data Structure (SPL)
The spinlock data structure (SPL) records all information necessary to properly
grant, release, and record the ownership of a spinlock. Each static system
spinlock (including the fork locks) and device lock uses an SPL to record the
IPL required for spinlock acquisition, its rank, and its owner. The spinlock
structure also maintains a history of spinlock use and a variety of counters used
in accounting and debugging.
Static system spinlocks are assembled from module LDAT and are located from
a vector of longword addresses starting at SMP$AR_SPNLKVEC. UCB$L_DLCK
contains the address of the device lock for the corresponding device unit.
The fields described in the spinlock data structure are illustrated in Figure 1–21
and described in Table 1–20.
Figure 1–21 Spinlock Data Structure (SPL)
SPL$B_SPINLOCK*SPL$B_IPL*SPL$B_RANK*SPL$B_VEC_INX* 0
SPL$W_OWN_CNT*SPL$W_WAIT_CPUS* 4
SPL$W_SIZE*SPL$B_TYPE*SPL$B_SUBTYPE* 8
SPL$L_OWN_CPU* 12
SPL$L_OWN_PC_VEC* (32 bytes) 16
SPL$L_WAIT_PC* 48
SPL$Q_ACQ_COUNT* 52
SPL$L_BUSY_WAITS* 60
SPL$Q_SPINS* 64
SPL$L_TIMO_INT* 72
SPL$L_RLS_PC* 76
*A read-only field
1–81