Document revision date: 19 July 1999 | |
Previous | Contents | Index |
The MCHECK and EMB spin locks, formerly separate spin locks in previous releases of OpenVMS, have been merged. When you analyze a crash, you might see one or both names when you display static spin locks. |
For each spin lock, fork lock, or device lock in the system, SHOW SPINLOCKS provides the following information:
SHOW SPINLOCKS/BRIEF produces a condensed display of this same information.
If the system under analysis was executing with full-checking multiprocessing enabled (according to the setting of the MULTIPROCESSING system parameter), SHOW SPINLOCKS/FULL adds to the spin lock display the last eight PCs at which the lock was acquired or released. If applicable, SDA also displays the PC of the last release of multiple, nested acquisitions of the lock.
#1 |
---|
SDA> SHOW SPINLOCKS System static spinlock structures --------------------------------- EMB Address : 801B9EF8 Owner CPU ID : None IPL : 1F Ownership Depth : 0000 Rank : 00 CPUs Waiting : 0000 Index : 20 Timeout interval 002DC60 MCHECK Address : 801B9F48 Owner CPU ID : None IPL : 1F Ownership Depth : 0000 Rank : 01 CPUs Waiting : 0000 Index : 21 Timeout interval 002DC60 . . . IOLOCK8 Address : 801BA538 Owner CPU ID : 02 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 Timeout interval 002DC60 . . . System dynamic spinlock structures ---------------------------------- HAETAR$MBA Address : 801BA178 Owner CPU ID : None IPL : 0B Ownership Depth : 0000 Rank : 08 CPUs Waiting : 0000 Index : 28 Timeout interval 002DC60 HAETAR$NLA Address : 801BA178 Owner CPU ID : None IPL : 08 Ownership Depth : 0000 Rank : 08 CPUs Waiting : 0000 Index : 28 Timeout interval 002DC60 HAETAR$PAA Address : 8063A620 Owner CPU ID : 02 DIPL : 14 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Timeout interval 002DC60 . . . |
This excerpt illustrates the default output of the SHOW SPINLOCKS command. Note that the CPU whose CPU ID is 2 owns the fork lock IOLOCK8. CPU 2 must have an IPL of at least 8, which is the acquisition IPL of the fork lock. CPU 2 has no nested ownership of the fork lock. The rank of IOLOCK8 is 1416, indicating that CPU 2 could not own any locks with a logical rank of 1516 or higher when it acquired IOLOCK8.
Similarly, while owning IOLOCK8, CPU 2 cannot obtain any additional spin locks with a logical rank of 1416 or lower.
No CPUs are waiting for the fork lock; its index is 3416.
#2 |
---|
SDA> SHOW SPINLOCKS/BRIEF Address Spinlock Name IPL Rank Index Depth #Waiting Owner CPU Interlock ---------------------------------------------------------------------------- 801B9EF8 EMB 1F 00 20 00 0000 None Free 801B9EF8 MCHECK 1F 00 20 00 0000 None Free 801B9F98 MEGA 1F 02 22 00 0000 None Free 801B9FE8 HWCLK 16 03 23 00 0000 None Free 801BA038 VIRTCONS 14 04 24 00 0000 None Free 801BA088 INVALIDATE 13 05 25 00 0000 None Free 801BA0D8 PERFMON 0F 06 26 00 0000 None Free 801BA128 POOL 0B 07 27 00 0000 None Free 801BA178 MAILBOX 0B 08 28 00 0000 None Free 801BA1C8 PR_LK11 0B 09 29 00 0000 None Free 801BA218 IOLOCK11 0B 0A 2A 00 0000 None Free 801BA268 PR_LK10 0A 0B 2B 00 0000 None Free 801BA2B8 IOLOCK10 0A 0C 2C 00 0000 None Free 801BA308 PR_LK9 09 0D 2D 00 0000 None Free 801BA358 IOLOCK9 09 0E 2E 00 0000 None Free 801BA3A8 SCHED 08 0F 2F 00 0000 None Free 801BA3F8 MMG 08 10 30 00 0000 None Free 801BA448 JIB 08 11 31 00 0000 None Free 801BA498 TIMER 08 12 32 00 0000 None Free 801BA4E8 PR_LK8 08 13 33 00 0000 None Free 801BA538 IOLOCK8 08 14 34 01 0000 02 00 801BA588 FILSYS 08 15 35 00 0000 None Free 801BA5D8 QUEUEAST 06 16 36 00 0000 None Free 8016A628 ASTDEL 02 17 37 00 0000 None Free Address Device Name DIPL Rank Index Depth #Waiting Owner CPU Interlock ---------------------------------------------------------------------------- 801BA178 HAETAR$MBA 0B 08 28 00 0000 None Free 801BA178 HAETAR$NLA 08 08 28 00 0000 None Free 8063A620 HAETAR$PAA 14 14 01 0000 02 00 8063C5C0 HAETAR$XEA 15 FF 00 0000 None Free 8063C4A0 HAETAR$XGA 15 FF 00 0000 None Free 8063C380 HAETAR$PEA 14 FF 00 0000 None Free 8063AC40 HAETAR$TXA 15 FF 00 0000 None Free 8063A520 HAETAR$LCA 15 FF 00 0000 None Free 801BA538 HAETAR$CNA 08 14 34 01 0000 02 00 . . . |
This excerpt illustrates the condensed form of the display produced in the first example.
#3 |
---|
SDA> SHOW SPINLOCKS/OWNED System static spinlock structures --------------------------------- IOLOCK8 Address : 801BA538 Owner CPU ID : 02 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 Timeout interval 002DC60 . . . System dynamic spinlock structures ---------------------------------- HAETAR$PAA Address : 8063A620 Owner CPU ID : 02 DIPL : 14 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Timeout interval 002DC60 HAETAR$CNA Address : 801BA538 Owner CPU ID : 02 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 Timeout interval 002DC60 HAETAR$NET Address : 801BA538 Owner CPU ID : 02 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 Timeout interval 002DC60 HAETAR$NDA Address : 801BA538 Owner CPU ID : 02 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 Timeout interval 002DC60 . . . |
The SHOW SPINLOCKS/OWNED command shows all owned spin locks in the system.
#4 |
---|
SDA> SHOW SPINLOCKS/FULL System static spinlock structures --------------------------------- EMB Address : 801B9EF8 Owner CPU ID : None IPL : 1F Ownership Depth : 0000 Rank : 00 CPUs Waiting : 0000 Index : 20 Timeout interval 002DC60 Spinlock EMB was last acquired or released from: (Most recently) 80195146 ERL$WAKE+00089 . 801950EF ERL$WAKE+00032 . 80195146 ERL$WAKE+00089 . 801950EF ERL$WAKE+00032 . 80195146 ERL$WAKE+00089 . 801950EF ERL$WAKE+00032 . 80195146 ERL$WAKE+00089 (Least recently) 801950EF ERL$WAKE+00032 . . . Last release of multiple acquisitions occurred at: 801194F9 EXE$INSIOQ+00044 . . . IOLOCK8 Address : 801BA538 Owner CPU ID : 02 IPL : 08 Ownership Depth : 0001 Rank : 14 CPUs Waiting : 0000 Index : 34 Timeout interval 002DC60 Spinlock IOLOCK8 was last acquired or released from: (Most recently) 801BBE08 EXE$FORKDSPTH+0007E . 80198EBF EXE$QIOACPPKT+00052 . 80198E7E EXE$QIOACPPKT+00011 . 80199BB2 IOC$CHECK_HWM+0032D . 80182DE5 LCK$QUEUED_EXIT+0001D . 80182884 LCK$AR_COMPAT_TBL+0007C . 8018357E EXE$DEQ+00189 (Least recently) 80183428 EXE$DEQ+00033 . . . |
The SHOW SPINLOCKS/FULL command displays a list of the last eight PCs that have accessed the spin lock. For instance, the fork dispatcher contains the code that most recently acquired the fork lock.
Displays the location and contents of the four process stacks of the SDA current process and the interrupt stack of the SDA current CPU.
SHOW STACK [range|/qualifier[,...]]
range
Range of memory locations you want to display in stack format. You can express a range using the following format:
m:n Range of virtual addresses from m to n m;n Range of virtual addresses starting at m and continuing for n bytes
/ALL
Displays the locations and contents of the four process stacks for the SDA current process and the interrupt stack for the SDA current CPU./EXECUTIVE
Shows the executive stack for the SDA current process./INTERRUPT
Shows the interrupt stack for the SDA current CPU./KERNEL
Shows the kernel stack for the SDA current process./SUPERVISOR
Shows the supervisor stack for the SDA current process./USER
Shows the user stack for the SDA current process.
The SHOW STACK command, by default, displays the stack that was in use when the system failed or, in the analysis of a running system, the current operating stack. For any other process made the SDA current process, the SHOW STACK command by default shows its current operating stack.The various qualifiers to the command can display any of the four per-process stacks for the SDA current process, as well as the interrupt stack for the SDA current CPU.
You can define SDA process and CPU context by using the SET CPU, SHOW CPU, SHOW CRASH, SET PROCESS, and SHOW PROCESS commands as indicated in their command descriptions. A complete discussion of SDA context control appears in Section 4.
SDA provides the following information in each stack display.
Section Contents Identity of stack SDA indicates whether the stack is a process stack (user, supervisor, executive, or kernel) or the processor interrupt stack. If the interrupt stack is being displayed, SDA displays the CPU ID of the processor that owns it. Similarly, if the SDA current process is currently scheduled on a processor in the system, SHOW STACK also specifies the CPU ID of the processor on which the process is scheduled. Stack pointer The stack pointer identifies the top of the stack. The display indicates the stack pointer by the symbol SP =>. Stack address SDA lists all the virtual addresses that the operating system has allocated to the stack. The stack addresses are listed in a column that increases in increments of 4 bytes (one longword). Stack contents SDA lists the contents of the stack in a column to the right of the stack addresses. Symbols SDA attempts to display the contents of a location symbolically, using a symbol and an offset. If the address is not within FFF 16 of the value of any existing symbol, this column is left blank.
If a stack is empty, the display shows the following:
SP => (STACK IS EMPTY)
SDA> SHOW STACK Process stacks (on CPU 00) -------------------------- Current operating stack (USER): 7FF73278 200C0000 7FF7327C 00001518 SGN$C_MAXPGFL+518 7FF73280 7FF732F0 7FF73284 000187A7 RMS$_ECHO+72E SP => 7FF73288 0000060A BUG$_NOHDJMT+002 7FF7328C 00000000 7FF73290 00000003 7FF73294 7FF73800 7FF73298 7FF73800 |
The SHOW STACK command displays a user stack that was the current operating stack for a process scheduled on CPU 00. The data shown above the stack pointer might not be valid. The symbol to the right of the columns, BUG$_NOHDJMT+002, is the result of the SDA attempt to interpret the contents of the longword at the top of the stack as a symbol meaningful to the user. In this case, the value on the stack and the value of BUG$_NOHDJMT are unrelated.
Displays a list of all active processes and the values of the parameters used in swapping and scheduling those processes.
SHOW SUMMARY [/IMAGE]
None.
/IMAGE
Causes SDA to display, if possible, the name of the image being executed within each process.
The SHOW SUMMARY command displays the information in Table SDA-23 for each active process in the system.
Table SDA-23 Process Information in the SHOW SUMMARY Display Column Contents Extended PID 32-bit number that uniquely identifies the process Indx Index of this process into the PCB array Process name Name assigned to the process Username Name of the user who created the process State Current state of the process, one of the following 14 states:
- COM
Computable and resident in memory
- COMO
Computable but outswapped
- CUR
- CEF
Waiting for a common event flag
- LEF
Waiting for a local event flag
- LEFO
Outswapped and waiting for a local event flag
- HIB
Hibernating
- HIBO
Hibernating and outswapped
- SUSP
Suspended
- SUSPO
Suspended and outswapped
- PFW
Waiting for a page that is not in memory (page-fault wait)
- FPG
Waiting to add a page to its working set (free-page wait)
- COLPG
Waiting for a page collision to be resolved (collided-page wait); this usually occurs when several processes cause page faults on the same shared page
- MWAIT
Waiting for a system resource (miscellaneous wait)
Pri Current scheduling priority of the process PCB Address of the process control block PHD Address of the process header Wkset Number (in decimal) of pages currently in the working set of the process
SDA> SHOW SUMMARY/IMAGE Current process summary ----------------------- Extended Indx Process name Username State Pri PCB PHD Wkset -- PID -- ---- --------------- ----------- ------- --- -------- -------- ----- 33C00101 0001 SWAPPER HIB 16 8000C3C0 8000C200 0 33C00205 0005 _RTA5: SIVAD LEF 4 80482FE0 82120E00 293 33C00106 0006 ERRFMT SYSTEM HIB 8 80432950 80DB4600 126 $254$DUA200:[SYS6.SYSCOMMON.][SYSEXE]ERRFMT.EXE;1 33C00107 0007 CACHE_SERVER SYSTEM HIB 16 80432AC0 81121E00 120 $254$DUA200:[SYS6.SYSCOMMON.][SYSEXE]FILESERV.EXE;400 33C00108 0008 CLUSTER_SERVER SYSTEM HIB 10 804331F0 81246600 313 $254$DUA200:[SYS6.SYSCOMMON.][SYSEXE]CSP.EXE;300 . . . 33C0010D 000D NETACP DECNET CUR 00 10 8044C6D0 816D8600 1500 $254$DUA200:[SYS6.SYSCOMMON.]<SYSEXE>NETACP.EXE;3 33C0010E 000E EVL DECNET HIB 4 8044CD60 817FCE00 68 $254$DUA200:[SYS6.SYSCOMMON.]<SYSEXE>EVL.EXE . . . |
The SHOW SUMMARY/IMAGE command describes all active processes in the system at the time of the system failure. Note that the process NETACP is in the CUR state on CPU 00 of a multiprocessor system at the time of the failure.
Displays the hexadecimal value of a symbol and, if the value is equal to an address location, the contents of that location.
SHOW SYMBOL [/ALL] symbol-name
symbol-name
Name of the symbol to be displayed. You must provide a symbol-name.
/ALL
Displays information about all symbols whose names begin with the characters specified in symbol-name.
The SHOW SYMBOL/ALL command is useful for determining the values of symbols that belong to a symbol set, as illustrated in the examples.
#1 |
---|
SDA> SHOW SYMBOL G G = 80000000 : 8FBC0FFC |
The SHOW SYMBOL command evaluates the symbol G as 8000000016 and displays the contents of address 8000000016 as 8FBC0FFC16.
#2 |
---|
SDA> SHOW SYMBOL/ALL BUG |
Symbols sorted by name ---------------------- BUG$BUILD_HEADE 80002038 => 24A89F16 BUG$_CONSOLRX50 00000640 => 10A2020E BUG$DUMP_REGIST 80002040 => 24A89F16 BUG$_CONTRACT 000000C0 BUG$FATAL 80002048 => 24A89F16 BUG$_CPUBUSYWAI 00000780 => 6501FB30 BUG$L_BUGCHK_FL 80004108 => 00000001 BUG$_CPUCEASED 000005E8 => 5EDD0000 BUG$L_FATAL_SPS 8000410C => 7FFE7C6C BUG$_CPUEXIT 000006B8 => 218FD007 BUG$READ_ERR_RE 80002050 => 24A89F16 BUG$_CPUSANITY 00000778 => 8A031164 BUG$REBOOT 80002058 => 6E9E9F17 BUG$_CTERM 00000678 => 00000004 BUG$TABLE 8000D09E => 00280001 BUG$_CWSERR 00000698 => 004C414E . . .This example shows the display produced by the SHOW SYMBOL/ALL command. SDA searches its symbol table for all symbols that begin with the string "BUG" and displays the symbols and their values. Although certain values equate to memory addresses, it is doubtful that the contents of those addresses are actually relevant to the symbol definitions in this instance.
Previous | Next | Contents | Index |
privacy and legal statement | ||
4556PRO_016.HTML |