Document revision date: 19 July 1999
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS documentation]

OpenVMS VAX System Dump Analyzer Utility Manual


Previous Contents Index

Note

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.


Examples

#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.

SHOW STACK

Displays the location and contents of the four process stacks of the SDA current process and the interrupt stack of the SDA current CPU.

Format

SHOW STACK [range|/qualifier[,...]]


Parameters

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

Qualifiers

/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.

Description

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) 


Example


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.

SHOW SUMMARY

Displays a list of all active processes and the values of the parameters used in swapping and scheduling those processes.

Format

SHOW SUMMARY [/IMAGE]


Parameters

None.

Qualifier

/IMAGE

Causes SDA to display, if possible, the name of the image being executed within each process.

Description

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

    Currently executing 1

  • 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


1For a process in the CUR state executing in a multiprocessing environment, SDA indicates the CPU ID of the processor on which the process is current. This information, however, might not be accurate in SHOW SUMMARY displays produced in the analysis of a running system.


Example


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.

SHOW SYMBOL

Displays the hexadecimal value of a symbol and, if the value is equal to an address location, the contents of that location.

Format

SHOW SYMBOL [/ALL] symbol-name


Parameter

symbol-name

Name of the symbol to be displayed. You must provide a symbol-name.

Qualifier

/ALL

Displays information about all symbols whose names begin with the characters specified in symbol-name.

Description

The SHOW SYMBOL/ALL command is useful for determining the values of symbols that belong to a symbol set, as illustrated in the examples.

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

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
4556PRO_016.HTML