HP OpenVMS System Analysis Tools Manual


Previous Contents Index


Chapter 7
SDA OCLA Extension (Alpha Only)

The Alpha EV7 On-Chip Logic Analyzer (OCLA) utility collects Program Counter (PC) traces in a portion of the Alpha EV7 cache. This data enables the user to tell which instructions each Alpha EV7 CPU on the system has executed.

7.1 Overview of OCLA

OCLA enables the user to tell which instructions each Alpha EV7 CPU has executed by setting aside one seventh of the Alpha EV7 cache as acquisition memory which stores the virtual addresses of instructions executed by the Alpha EV7 CPU. The acquisition memory in the cache can later be analyzed with an SDA extension.

The acquisition of instructions can be enabled or disabled while the system is running, thereby allowing the acquisition of instruction streams for a given period of time without the need to restart the system.

If the OCLA is enabled and started, and your system subsequently fails due to a crash, the current acquisition memory is automatically saved to the system dump file. The instructions executed by each CPU prior to the system failure can then be analyzed with SDA. Upon restart of the system, the acquisition memory in the EV7 is still there and can be copied into system memory using the OCLA ENABLE and OCLA DUMP commands.

If the STOP/CPU command is issued on a CPU for which OCLA has been enabled, OCLA is automatically disabled if the CPU is allowed to leave the active set. When a CPU is started with the START/CPU command, OCLA is not automatically enabled; rather, it must be enabled using SDA.

Table 7-1 summarizes the SDA commands and qualifiers for the OCLA utility.

7.2 SDA OCLA Commands

Table 7-1 SDA Commands for the OCLA Utility
Commands Description
OCLA ENABLE Enables the OCLA. The command reserves one seventh of the EV7 cache as acquisition memory for instructions.
OCLA DISABLE Disables the OCLA and returns the cache set to the Alpha EV7 CPU.
OCLA DUMP Copies the acquisition memory in the Alpha EV7 cache to a region in system space for later analysis by SDA.
OCLA HELP Provides online help about OCLA commands.
OCLA LOAD Loads the OCLA$PCTRACE execlet. This must be done prior to enabling any OCLA.
OCLA SET REGISTER/RESET Resets OCLA registers to the default values.
OCLA SHOW REGISTER Displays detailed information about the OCLA registers.
OCLA SHOW STATUS Displays the status of an OCLA.
OCLA SHOW TRACE Decodes the acquired compressed instruction stream and displays it.
OCLA START Starts the acquisition of instructions into the acquisition memory.
OCLA STOP Stops the acquisition of instructions.
OCLA UNLOAD Unloads the OCLA$PCTRACE execlet and returns the acquisition buffers to the system.


OCLA DISABLE

Disables the OCLA and returns the cache set to the Alpha EV7 CPU.

Format

OCLA DISABLE [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

Specifies the CPU on which OCLA should be disabled. If this qualifier is omitted, OCLA is disabled on every CPU in the system.

OCLA DUMP

Copies the acquisition memory in the Alpha EV7 cache to a region in system space for later analysis by SDA.

When a system fails, data collected in the EV7 cache is automatically saved in the system dump file for each enabled CPU. (See the OCLA SHOW TRACE command for more information.)


Format

OCLA DUMP [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

Specifies the CPU for which to dump the acquisition memory. If this qualifier is omitted, the acquisition memory is dumped for all CPUs.

OCLA ENABLE

Enables the OCLA. Reserves one-seventh of the EV7 cache as acquisition memory for instructions.

Format

OCLA ENABLE [/CPU=n] [/RESET]


Parameters

None.

Qualifiers

/CPU=n

Specifies the CPU on which to enable OCLA. If this qualifier is omitted, OCLA is enabled on every CPU in the system.

/RESET

Initializes the OCLA to default values.

Under certain circumstances, the OCLA might not be initialized properly when the system is powered on. For more information, see the OCLA SHOW REGISTER command.

If you wish to reset only certain registers to default values, use the OCLA SET REGISTER/RESET command.


OCLA HELP

Provides online help on OCLA commands.

Format

OCLA HELP


Parameters

None.

Qualifiers

None.

OCLA LOAD

Loads the OCLA$PCTRACE execlet. This must be done before enabling any OCLA.

Format

OCLA LOAD


Parameters

None.

Qualifiers

None.

OCLA SET REGISTER

Resets a specified OCLA register to its default value.

The /RESET qualifier is required for this operation.


Format

OCLA SET REGISTER /RESET keyword


Parameter

keyword

Specifies which OCLA register to reset to its default value. The valid keywords are as follows:
MISC OCLA 1 miscellaneous register
OCLA1_CTL OCLA 1 control register
PC_CTL OCLA 1 PC control register
SMASK OCLA 1 select mask register
SMATCH OCLA 1 select match register
TMASK OCLA 1 trigger mask register
TMATCH OCLA 1 trigger match register

Note

You cannot reset all registers using a single command if OCLA has already been enabled. You must first disable OCLA using the OCLA DISABLE command. You can then reset all the registers by performing an OCLA ENABLE/RESET command.

Qualifier

/RESET

This qualifier is required to reset the specified register to its default value.

OCLA SHOW REGISTER

Displays detailed information about OCLA registers.

Format

OCLA SHOW REGISTER [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

Specifies the CPU for which to display registers. If this qualifier is omitted, registers are displayed for all CPUs.

Example


SDA>  SHOW REGISTER/CPU=7
OCLA EV7 CPU Registers for CPU: 07 
---------------------------------- 
ZBOX control register for CPU 07: 00000000ffffffff 
 
CBOX control register for CPU 07: 078000001024a807 
 
OCLA 1 MISC register for CPU 07:  0000000000000000 
 
OCLA 1 TMATCH:    40000002ffffffff 
OCLA 1 SMATCH:    0000000000000000 
OCLA 1 PC_TMATCH: 0000000000000000 
OCLA 1 PC_SMATCH: 0000000000000000 
 
OCLA 1 TMASK:     4000000000000000 
OCLA 1 SMASK:     0000000000000000 
OCLA 1 PC_TMASK:  0000000000000000 
OCLA 1 PC_SMASK:  0000000000000000 
 
OCLA 1 control register for CPU 07: 8000210000000000 
Enab Run  RDRST ITRIG IFULL TAG_EN TS_EN PDAT_EN SFILT TMODE IRQF IRQT TIHANG 
   1   0      0     0     0      0    0        0    00    00    0    0      0 
TAG_SRC EXT_SRC TS_FORCE EIO WRAP SREL  AMATCH  AADDR 
    000     004        0   0    1    0   00000  00000 
 
OCLA 1 PC Control register for CPU 07: 000000000000003f 
STGSEL TRGSEL OUTSEL CDEPTH        CMASK CAMEN 
    03     03     03     00        00000     0 
      

This command displays all OCLA-related registers on the EV7 CPU. This particular CPU was enabled with the /RESET qualifier, so the values have default settings.


OCLA SHOW STATUS

Displays the status of an OCLA.

Format

OCLA SHOW STATUS [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

Specifies the CPU for which to show OCLA status. If this qualifier is omitted, status is displayed for all CPUs.

Example


SDA> OCLA SHOW STATUS
EV7 OCLA status 
--------------- 
CPU 00 is enabled, no entries, no dump done 
CPU 01 is enabled, no entries, no dump done 
CPU 02 is enabled, no entries, no dump done 
CPU 03 is enabled, no entries, no dump done 
CPU 04 is enabled, no entries, no dump done 
CPU 05 is enabled, no entries, no dump done 
CPU 06 is enabled, no entries, no dump done 
CPU 07 is enabled, running, no entries, no dump done 
      


OCLA SHOW TRACE

Decodes the acquired compressed instruction stream and displays it.

Format

OCLA SHOW TRACE [/CPU=n] [/LAST=n][/NOPAL][/REVERSE][/SUMMARY][/SYMBOLIZE]


Parameters

None.

Qualifiers

/CPU=n

Specifies the CPU for which to show data. If this qualifier is omitted, trace data is displayed for all CPUs.

/LAST=n

Displays the last n instructions. If this qualifier is omitted, trace data is displayed for all instructions.

/NOPAL

Do not include PAL code when displaying instructions.

/REVERSE

Displays the instructions in reverse order.

/SUMMARY

Displays the last 42 instructions.

/SYMBOLIZE

Attempts to symbolize each instruction.

Example


SDA> OCLA SHOW TRACE/CPU=7/SUMMARY/SYMBOLIZE
OCLA PC trace information for CPU 07 
------------------------------------ 
CPU 07 has 16384 valid entries 
42 PC values displayed 
0000002c00030358 ,PAL Code 
0000002c0003035c ,PAL Code 
ffffffff81244c94  OCLA$DEBUG+00C94 
ffffffff81244c98  OCLA$DEBUG+00C98 
ffffffff81244c9c  OCLA$DEBUG+00C9C 
ffffffff81244ca0  OCLA$DEBUG+00CA0 
ffffffff81244ca4  OCLA$DEBUG+00CA4 
ffffffff81244ca8  OCLA$DEBUG+00CA8 
ffffffff81244cac  OCLA$DEBUG+00CAC 
ffffffff81244cb0  OCLA$DEBUG+00CB0 
ffffffff81244cd0  OCLA$DEBUG+00CD0 
ffffffff81244cd4  OCLA$DEBUG+00CD4 
ffffffff81244cd8  OCLA$DEBUG+00CD8 
ffffffff81244cdc  OCLA$DEBUG+00CDC 
ffffffff81244ce0  OCLA$DEBUG+00CE0 
 ...
      

This example shows a summary of the last PC instructions executed by CPU 7 and symbolizes the PC values.

In this example, lines of PAL code are identified by ",PAL Code".


OCLA START

Starts the acquisition of instructions into acquisition memory.

Format

OCLA START [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

The CPU on which to start instruction acquisition. If this qualifier is omitted, instruction acquisition is started on all CPUs.

OCLA STOP

Stops the acquisition of instructions.

Format

OCLA STOP [/CPU=n]


Parameters

None.

Qualifier

/CPU=n

Specifies the CPU on which to stop acquisition. If this qualifier is omitted, acquisition is stopped on all CPUs.

OCLA UNLOAD

Unloads the OCLA$PCTRACE execlet and returns the acquisition buffers to the system.

Format

OCLA UNLOAD


Parameters

None.

Qualifiers

None.

Examples

#1

SDA> OCLA DUMP
OCLA PC trace performed for 8 CPUs
SDA> OCLA SHOW TRACE/SUMMARY/SYMBOLIZE/CPU=0
OCLA PC trace information for CPU 00 
------------------------------------ 
CPU 00 has 16384 valid entries 
The overhead per allocation is 1208 
42 PC values displayed 
ffffffff8012d3ac  SCH$CALC_CPU_LOAD_C+0030C 
ffffffff8012d3b0  SCH$CALC_CPU_LOAD_C+00310 
ffffffff8012d3b4  SCH$CALC_CPU_LOAD_C+00314 
ffffffff8012d3b8  SCH$CALC_CPU_LOAD_C+00318 
ffffffff8012d3bc  SCH$CALC_CPU_LOAD_C+0031C 
ffffffff8012d3c0  SCH$CALC_CPU_LOAD_C+00320 
ffffffff8012d4d8  SCH$CALC_CPU_LOAD_C+00438 
... 
      

This series of commands demonstrates how you can use the OCLA SDA extension to interactively inspect a running system by reading the EV7 acquisition memory. The second command copies the EV7 acquisition cache memory into system memory and displays the collected values for CPU 0.

#2

SDA> OCLA LOAD
OCLA$PCTRACE load status = 00000001
 
SDA> OCLA ENABLE/RESET
OCLA PC tracing enabled for 8 CPUs
 
SDA> OCLA START
OCLA PC tracing started for 8 CPUs
      

The series of commands in this example demonstrates how to load the OCLA execlet, enable the OCLA SDA extensions on each CPU in the system, and start each OCLA. Once started, the EV7 OCLA extensions collect data for each PC instruction executed by the active CPUs in the system.

In the unlikely event of a system failure, PC values recorded by the OCLA extensions are stored in the system dump file and can later be retrieved by using the System Dump Analyzer (SDA).

#3

SDA> OCLA STOP
OCLA PC tracing stopped for 8 CPUs
 
SDA> OCLA DISABLE
OCLA PC tracing disabled for 8 CPUs
 
SDA> OCLA UNLOAD
OCLA$PCTRACE unload status = 00000001
      

This series of commands stops all running OCLA extensions, disables and frees up system memory associated with each OCLA, and unloads the OCLA execlet from system memory.


Previous Next Contents Index