[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

OpenVMS Alpha System Analysis Tools Manual


Previous Contents Index


SHOW CPU

When analyzing a dump, displays information about the state of a CPU at the time of the system failure.

Note

SHOW CPU is only valid when you are analyzing a crash dump. It is not a valid command when you are analyzing the running system, because all the CPU-specific information may not be available.

Format

SHOW CPU [cpu-id]


Parameter

cpu-id

Numeric value from 00 to 1F16 indicating the identity of the CPU for which context information is to be displayed. If you specify a value outside this range, or you specify the cpu-id of a CPU that was not active at the time of the system failure, SDA displays the following message:


%SDA-E-CPUNOTVLD, CPU not booted or CPU number out of range

If you use the cpu-id parameter, the SHOW CPU command performs an implicit SET CPU command, making the CPU indicated by cpu-id the current CPU for subsequent SDA commands. (See the description of the SET CPU command and Section 2.5 for information on how this can affect the CPU context---and process context---in which SDA commands execute.)


Qualifiers

None.

Description

The SHOW CPU command displays system failure information about the CPU specified by cpu-id or, by default, the SDA current CPU, as defined in Section 2.5. You cannot use the SHOW CPU command when examining the running system with SDA.

The SHOW CPU command produces several displays. The first display is a brief description of the system failure and its environment that includes the following:

  • Reason for the bugcheck.
  • Name of the currently executing process. If no process has been scheduled on this CPU, SDA displays the following message:


    Process currently executing: no processes currently scheduled on the processor
    
  • File specification of the image executing within the current process (if there is a current process).
  • Interrupt priority level (IPL) of the CPU at the time of the system failure.
  • The CPU database address.
  • The CPU's capability set.

Next, the general registers display shows the contents of the CPU's integer registers (R0 to R30), and the AI, RA, PV, FP, PC, and PS at the time of the system failure.

The processor registers display consists of the following parts:

  • Common processor registers
  • Processor-specific registers
  • Stack pointers

The first part of the processor registers display includes registers common to all Alpha processors, which are used by the operating system to maintain the current process virtual address space, system space, or other system functions. This part of the display includes the following registers:

  • Hardware privileged context block base register (PCBB)
  • System control block base register (SCBB)
  • Software interrupt summary register (SISR)
  • Address space number register (ASN)
  • AST summary register (ASTSR)
  • AST enable register (ASTEN)
  • Interrupt priority level register (IPL)
  • Processor priority level register (PRBR)
  • Page table base register (PTBR)
  • Virtual page table base register (VPTB)
  • Floating-point control register (FPCR)
  • Machine check error summary register (MCES)

The last part of the display includes the four stack pointers: the pointers of the kernel, executive, supervisor, and user stacks (KSP, ESP, SSP, and USP, respectively).

The SHOW CPU command concludes with a listing of the spinlocks, if any, owned by the CPU at the time of the system failure, reproducing some of the information given by the SHOW SPINLOCKS command. The spinlock display includes the following information:

  • Name of the spinlock.
  • Address of the spinlock data structure (SPL).
  • The owning CPU's CPU ID.
  • IPL of the spinlock.
  • Indication of the depth of this CPU's ownership of the spinlock. A number greater than 1 indicates that this CPU has nested acquisitions of the spinlock.
  • Rank of the spinlock.
  • Timeout interval for spinlock acquisition (in terms of 10 milliseconds).
  • Shared array (shared spinlock context block pointers)


Example


SDA> SHOW CPU 0
CPU 00 Processor crash information
----------------------------------
CPU 00 reason for Bugcheck: CPUEXIT, Shutdown requested by another CPU

Process currently executing on this CPU:   None

Current IPL: 31  (decimal)

CPU database address:  81414000

CPUs Capabilities:    PRIMARY,QUORUM,RUN

General registers:

R0   = FFFFFFFF.81414000  R1   = FFFFFFFF.81414000  R2   = 00000000.00000000
R3   = FFFFFFFF.810AD960  R4   = 00000000.01668E90  R5   = 00000000.00000001
R6   = 66666666.66666666  R7   = 77777777.77777777  R8   = FFFFFFFF.814FB040
R9   = 99999999.99999999  R10  = FFFFFFFF.814FB0C0  R11  = BBBBBBBB.BBBBBBBB
R12  = CCCCCCCC.CCCCCCCC  R13  = FFFFFFFF.810AD960  R14  = FFFFFFFF.81414018
R15  = 00000000.00000004  R16  = 00000000.000006AC  R17  = 00000000.00000047
R18  = 00000000.00000000  R19  = 00000000.00000000  R20  = FFFFFFFF.8051A494
R21  = 00000000.00000000  R22  = 00000000.00000001  R23  = 00000000.00000010
R24  = FFFFFFFF.81414000  AI   = FFFFFFFF.81414000  RA   = FFFFFFFF.81006000
PV   = 00000001.FFFFFFFF  R28  = 00000000.00000000  FP   = FFFFFFFF.88ABDFD0
PC   = FFFFFFFF.8009C95C  PS   = 18000000.00001F04

Processor Internal Registers:

ASN  = 00000000.00000000                     ASTSR/ASTEN =          00000000
IPL  =          0000001F  PCBB = 00000000.01014080  PRBR = FFFFFFFF.81414000
PTBR = 00000000.0000FFBF  SCBB = 00000000.000001E8  SISR = 00000000.00000100
VPTB = FFFFFEFC.00000000  FPCR = 00000000.00000000  MCES = 00000000.00000000

        KSP    = FFFFFFFF.88ABDCD8
        ESP    = FFFFFFFF.88ABF000
        SSP    = FFFFFFFF.88AB9000
        USP    = FFFFFFFF.88AB9000

                Spinlocks currently owned by CPU 00

SCS                                    Address        810AF300
Owner CPU ID       00000000            IPL            00000008
Ownership Depth    00000000            Rank           0000001A
Timeout Interval   002DC6C0            Share Array    00000000
      

This example shows the default output of the SHOW CPU command.


SHOW CRASH

Displays information about the state of the system at the time of failure. Provides system information identifying a running system.

Format

SHOW CRASH [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

Allows exception data to be displayed from CPUs other than the one considered as the crash CPU when more than one CPU crashes simultaneously.

Description

The SHOW CRASH command has two different functions, depending on whether you use it to analyze a running system or a system failure.

When used during the analysis of a running system, the SHOW CRASH command produces a display that describes the system and the version of OpenVMS Alpha that it is running. The system crash information display contains the following information:

  • Name and version number of the operating system
  • Major and minor IDs of the operating system
  • Identity of the Alpha system, including an indication of its cluster membership
  • CPU ID of the primary CPU
  • Address of all CPU databases

When used during the analysis of a system failure, the SHOW CRASH command produces several displays that identify the system and describe its state at the time of the failure.

If the current CPU context for SDA is not that of the processor that signaled the bugcheck, or the CPU specified with the /CPU=n qualifier, the SHOW CRASH command first performs an implicit SET CPU command to make that processor the current CPU for SDA. (See the description of the SET CPU command and Section 2.5 for a discussion of how this can affect the CPU context---and process context---in which SDA commands execute.)

The system crash information display in this context provides the following information:

  • Date and time of the system failure.
  • Name and version number of the operating system.
  • Major and minor IDs of the operating system.
  • Identity of the system.
  • CPU IDs of both the primary CPU and the CPU that initiated the bugcheck. In a uniprocessor Alpha system, these IDs are identical.
  • Bitmask of the active and available CPUs in the system.
  • For each active processor in the system, the name of the bugcheck that caused the system failure. Generally, there will be only one significant bugcheck in the system. All other processors typically display the following as their reason for taking a bugcheck:


    CPUEXIT, Shutdown requested by another CPU
    

Subsequent screens of the SHOW CRASH command display information about the state of each active processor on the system at the time of the system failure. The information in these screens is identical to that produced by the SHOW CPU command, including the general-purpose registers, processor-specific registers, stack pointers, and records of spinlock ownership. The first such screen presents information about the processor that caused the failure; others follow according to the numeric order of their CPU IDs.


Examples

#1

SDA> SHOW CRASH
System crash information
------------------------
Time of system crash:  1-JAN-2001 00:00:00.00

Version of system: OpenVMS (TM) Alpha Operating System, Version X901-SSB

System Version Major ID/Minor ID: 3/0

VMScluster node: VMSTS6, a

Crash CPU ID/Primary CPU ID:  00/00

Bitmask of CPUs active/available:  00000001/00000001

CPU bugcheck codes:
        CPU 00 -- INVEXCEPTN, Exception while above ASTDEL

System State at Time of Exception
---------------------------------
Exception Frame:
----------------
        R2  = FFFFFFFF.810416C0  SCS$GA_LOCALSB+005C0
        R3  = FFFFFFFF.81007E60  EXE$GPL_HWRPB_L
        R4  = FFFFFFFF.850AEB80
        R5  = FFFFFFFF.81041330  SCS$GA_LOCALSB+00230
        R6  = FFFFFFFF.81038868  CON$INITLINE
        R7  = FFFFFFFF.81041330  SCS$GA_LOCALSB+00230
        PC  = FFFFFFFF.803EF81C  SYS$TTDRIVER+0F81C
        PS  = 30000000.00001F04

         FFFFFFFF.803EF80C:     STL             R24,#X0060(R5)
         FFFFFFFF.803EF810:     LDL             R28,#X0138(R5)
         FFFFFFFF.803EF814:     BIC             R28,R27,R28
         FFFFFFFF.803EF818:    00000138
   PC => FFFFFFFF.803EF81C:     HALT
         FFFFFFFF.803EF820:     HALT
         FFFFFFFF.803EF824:     BR              R31,#XFF0000
         FFFFFFFF.803EF828:     LDL             R24,#X0138(R5)
         FFFFFFFF.803EF82C:     BIC             R24,#X40,R24

   PS =>
         MBZ SPAL      MBZ    IPL VMM MBZ CURMOD INT PRVMOD de
           0   30   00000000000 1F  0   0   KERN   1   KERN

Signal Array
------------
        Length = 00000003
        Type   = 0000043C
        Arg    = FFFFFFFF.803EF81C  SYS$TTDRIVER+0F81C
        Arg    = 30000000.00001F04
%SYSTEM-F-OPCDEC, opcode reserved to Digital fault at PC=FFFFFFFF803EF81C, PS=00001F04

Saved Scratch Registers in Mechanism Array
------------------------------------------
R0   = 00000000.00000000  R1   = FFFFFFFF.811998B8  R16  = 00000000.00001000
R17  = FFFFFFFF.8119B1F0  R18  = 00000000.00000010  R19  = FFFFFFFF.810194F0
R20  = 00000000.00000000  R21  = 0000000F.00000000  R22  = 00000000.00000000
R23  = 00000000.00004000  R24  = 00000000.00001000  R25  = 00000000.00000000
R26  = FFFFFFFF.81041474  R27  = 00000000.00004000  R28  = 00000000.00001000

   .
   .
   .
                           (CPU-specific display omitted)
   .
   .
   .
      

This long display reflects the output of the SHOW CRASH command within the analysis of a system failure.

#2

SDA> SHOW CRASH
System crash information
------------------------
Time of system crash: 12-OCT-2000 11:27:58.02

Version of system: OpenVMS (TM) Alpha Operating System, Version X74B-FT2

System Version Major ID/Minor ID: 3/0

System type: DEC 3000 Model 400

Crash CPU ID/Primary CPU ID:  00/00

Bitmask of CPUs active/available:  00000001/00000001

CPU bugcheck codes:
        CPU 00 -- PGFIPLHI, Pagefault with IPL too high

System State at Time of Page Fault:
-----------------------------------

Page fault for address 00000000.00046000 occurred at IPL: 8
Memory management flags: 00000000.00000001 (instruction fetch)

Exception Frame:
----------------
        R2  = 00000000.00000003
        R3  = FFFFFFFF.810B9280  EXCEPTION_MON+39C80
        R4  = FFFFFFFF.81564540  PCB
        R5  = 00000000.00000088
        R6  = 00000000.000458B0
        R7  = 00000000.7FFA1FC0
        PC  = 00000000.00046000
        PS  = 20000000.00000803

         00000000.00045FF0:     LDQ             R2,#X0050(FP)
         00000000.00045FF4:     LDQ             R12,#X0058(FP)
         00000000.00045FF8:     LDQ             R13,#X0060(FP)
         00000000.00045FFC:     LDQ             R14,#X0068(FP)
   PC => 00000000.00046000:     BIS             R1,R17,R1
         00000000.00046004:     BIS             R31,#X01,R25
         00000000.00046008:     STQ_U           R1,#X0002(R10)
         00000000.0004600C:     BSR             R26,#X00738C
         00000000.00046010:     LDQ_U           R16,#X0002(R10)

   PS =>
         MBZ SPAL      MBZ    IPL VMM MBZ CURMOD INT PRVMOD de
          0   20   00000000000 08  0   0   KERN   0   USER

   .
   .
   .
                                        (CPU-specific display omitted)
   .
   .
   .
      

This display reflects the output of a SHOW CRASH command within the analysis of a PGFIPLHI bugcheck.


SHOW DEVICE

Displays a list of all devices in the system and their associated data structures, or displays the data structures associated with a given device or devices.

Format

SHOW DEVICE [device-name|/ADDRESS=ucb-address|/CDT=cdt_address|
/CHANNELS|/HOMEPAGE|/PDT|/UCB=ucb-address]


Parameter

device-name

Device or devices for which data structures are to be displayed. The following table lists several uses of the device-name parameter:
To Display the Structures For... Action
All devices in the system Do not specify a device-name (for example, SHOW DEVICE).
A single device Specify an entire device-name (for example, SHOW DEVICE VTA20).
All devices of a certain type on a single controller Specify only the device type and controller designation (for example, SHOW DEVICE RTA or SHOW DEVICE RTB).
All devices of a certain type on any controller Specify only the device type (for example, SHOW DEVICE RT).
All devices whose names begin with a certain character or character string Specify the character or character string (for example, SHOW DEVICE D).
All devices on a single node or HSC Specify only the node name or HSC name (for example, SHOW DEVICE GREEN$).
All devices with a certain allocation class Specify the allocation class including leading and trailing $, for example, SHOW DEVICE $63$.

Qualifiers

/ADDRESS=ucb-address

Indicates the device for which data structure information is to be displayed by the address of its unit control block (UCB). The /ADDRESS qualifier is an alternate method of supplying a device name to the SHOW DEVICE command. If both the device-name parameter and the /ADDRESS qualifier appear in a single SHOW DEVICE command, SDA responds only to the parameter or qualifier that appears first.

/CDT=cdt_address

Identifies the device by the address of its Connector Descriptor Table (CDT). This applies to cluster port devices only.

/CHANNELS

Displays information on active Memory Channel channel blocks. This qualifier is ignored for devices other than Memory Channel.

/HOMEPAGE

Displays fields from the Memory Channel Home Page. This qualifier is ignored for devices other than Memory Channel.

/PDT

Displays the Memory Channel Port Descriptor Table. This qualifier is ignored for devices other than Memory Channel.

/UCB=ucb-address

This is a synonym for /ADDRESS=ucb-address as described previously.

Description

The SHOW DEVICE command produces several displays taken from system data structures that describe the devices in the system configuration.

If you use the SHOW DEVICE command to display information for more than one device or one or more controllers, it initially produces the device data block (DDB) list to provide a brief summary of the devices for which it renders information in subsequent screens.

Information in the DDB list appears in five columns, the contents of which are as follows:

  • Address of the device data block (DDB)
  • Controller name
  • Name of the ancillary control process (ACP) associated with the device
  • Name of the device driver
  • Address of the driver prologue table (DPT)

The SHOW DEVICE command then produces a display of information pertinent to the device controller. This display includes information gathered from the following structures:

  • Device data block (DDB)
  • Primary channel request block (CRB)
  • Interrupt dispatch block (IDB)
  • Driver dispatch table (DDT)

If the controller is an HSC controller, SHOW DEVICE also displays information from its system block (SB) and each path block (PB).

Many of these structures contain pointers to other structures and driver routines. Most notably, the DDT display points to various routines located within driver code, such as the start I/O routine, unit initialization routine, and cancel I/O routine.

For each device unit subject to the SHOW DEVICE command, SDA displays information taken from its unit control block, including a list of all I/O request packets (IRPs) in its I/O request queue. For certain mass storage devices, SHOW DEVICE also displays information from the primary class driver data block (CDDB), the volume control block (VCB), and the ACP queue block (AQB). For units that are part of a shadow set, SDA displays a summary of shadow set membership.

As it displays information for a given device unit, SHOW DEVICE defines the following symbols as appropriate:

Symbol Meaning
UCB Address of unit control block
SB Address of system block
ORB Address of object rights block
DDB Address of device data block
DDT Address of driver dispatch table
CRB Address of channel request block
SUD Address of supplementary VCB data
SHAD Address of host-based shadowing data structure
AMB Associated mailbox UCB pointer
IRP Address of I/O request packet
2P_UCB Address of alternate UCB for dual-pathed device
LNM Address of logical name block for mailbox
PDT Address of port descriptor table
CDDB Address of class driver descriptor block for MSCP served device
2P_CDDB Address of alternate CDDB for MSCP served device
RWAITCNT Resource wait count for MSCP served device
VCB Address of volume control block for mounted device
2P_DDB Address of secondary DDB
VP_IRP Address of volume processing IRP
MMB Address of merge management block
CPYLOCK ID of copier lock
VU_TO Virtual Unit Timeout (seconds)
VU_UCB UCB address of Virtual Unit
MPDEV Address of multipath data structure
PRIMARY_UCB UCB address for primary path
CURRENT_UCB UCB address for current path

If you are examining a driver-related system failure, you may find it helpful to issue a SHOW STACK command after the appropriate SHOW DEVICE command, to examine the stack for any of these symbols. Note, however, that although the SHOW DEVICE command defines those symbols relevant to the last device unit it has displayed, and redefines symbols relevant to any subsequently displayed device unit, it does not undefine symbols. (For instance, SHOW DEVICE DUA0 defines the symbol PDT, but SHOW DEVICE MBA0 does not undefine it, even though the PDT structure is not associated with a mailbox device.) To maintain the accuracy of such symbols that appear in the stack listing, use the DEFINE command to modify the symbol name. For example:


SDA> DEFINE DUA0_PDT PDT
SDA> DEFINE MBA0_UCB UCB

See the descriptions of the READ and FORMAT commands for additional information on defining and examining the contents of device data structures.


Examples

#1

SDA> SHOW DEVICE/ADDRESS=8041E540
OPA0                                   VT300_Series       UCB address    8041E540

Device status:   00000010 online
Characteristics: 0C040007 rec,ccl,trm,avl,idv,odv
                 00000200 nnm
Owner UIC [000001 ,000004]  Operation count        160    ORB address    8041E4E8
      PID         00010008  Error count              0    DDB address    8041E3F8
Class/Type           42/70  Reference count          2    DDT address    8041E438
Def. buf. size          80  BOFF              00000001    CRB address    8041E740
DEVDEPEND         180093A0  Byte count        0000012C    I/O wait queue 8041E5AC
DEVDEPND2         FB101000  SVAPTE            80537B80
DEVDEPND3         00000000  DEVSTS            00000001
FLCK index              3A
DLCK address      8041E880
*** I/O request queue is empty ***
      

This example reproduces the SHOW DEVICE display for a single device unit, OPA0. Whereas this display lists information from the UCB for OPA0, including some addresses of key data structures and a list of pending I/O requests for the unit, it does not display information about the controller or its device driver. To display the latter information, specify the device-name as OPA (for example, SHOW DEVICE OPA).

#2

SDA>  SHOW DEVICE DU
I/O data structures
-------------------
                            DDB list
                            --------

       Address    Controller     ACP         Driver               DPT
       -------    ----------   --------   ------------            ---

      80D0B3C0    BLUES$DUA     F11XQP    SYS$DKDRIVER          807735B0
      8000B2B8    RED$DUA       F11XQP    SYS$DKDRIVER          807735B0
      80D08BA0    BIGTOP$DUA    F11XQP    SYS$DKDRIVER          807735B0
      80D08AE0    TIMEIN$DUA    F11XQP    SYS$DKDRIVER          807735B0
   .
   .
   .
Press RETURN for more.
   .
   .
   .
      

This excerpt from the output of the SHOW DEVICE DU command illustrates the format of the DDB list. In this case, the DDB list concerns itself with those devices whose device type begins with DU. It displays devices of these types attached to various HSCs (RED$ and BLUES$) and systems in a cluster (BIGTOP$ and TIMEIN$).


Previous Next Contents Index