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
|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.|
Disables the OCLA and returns the cache set to the Alpha EV7 CPU.
OCLA DISABLE [/CPU=n]
/CPU=nSpecifies the CPU on which OCLA should be disabled. If this qualifier is omitted, OCLA is disabled on every CPU in the system.
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.)
OCLA DUMP [/CPU=n]
/CPU=nSpecifies the CPU for which to dump the acquisition memory. If this qualifier is omitted, the acquisition memory is dumped for all CPUs.
Enables the OCLA. Reserves one-seventh of the EV7 cache as acquisition memory for instructions.
OCLA ENABLE [/CPU=n] [/RESET]
/CPU=nSpecifies the CPU on which to enable OCLA. If this qualifier is omitted, OCLA is enabled on every CPU in the system.
/RESETInitializes 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.
Provides online help on OCLA commands.
Loads the OCLA$PCTRACE execlet. This must be done before enabling any OCLA.
Resets a specified OCLA register to its default value.
The /RESET qualifier is required for this operation.
OCLA SET REGISTER /RESET keyword
keywordSpecifies 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
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.
/RESETThis qualifier is required to reset the specified register to its default value.
Displays detailed information about OCLA registers.
OCLA SHOW REGISTER [/CPU=n]
/CPU=nSpecifies the CPU for which to display registers. If this qualifier is omitted, registers are displayed for all CPUs.
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.
Displays the status of an OCLA.
OCLA SHOW STATUS [/CPU=n]
/CPU=nSpecifies the CPU for which to show OCLA status. If this qualifier is omitted, status is displayed for all CPUs.
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
Decodes the acquired compressed instruction stream and displays it.
OCLA SHOW TRACE [/CPU=n] [/LAST=n][/NOPAL][/REVERSE][/SUMMARY][/SYMBOLIZE]
/CPU=nSpecifies the CPU for which to show data. If this qualifier is omitted, trace data is displayed for all CPUs.
/LAST=nDisplays the last n instructions. If this qualifier is omitted, trace data is displayed for all instructions.
/NOPALDo not include PAL code when displaying instructions.
/REVERSEDisplays the instructions in reverse order.
/SUMMARYDisplays the last 42 instructions.
/SYMBOLIZEAttempts to symbolize each instruction.
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".
Starts the acquisition of instructions into acquisition memory.
OCLA START [/CPU=n]
/CPU=nThe CPU on which to start instruction acquisition. If this qualifier is omitted, instruction acquisition is started on all CPUs.
Stops the acquisition of instructions.
OCLA STOP [/CPU=n]
/CPU=nSpecifies the CPU on which to stop acquisition. If this qualifier is omitted, acquisition is stopped on all CPUs.
Unloads the OCLA$PCTRACE execlet and returns the acquisition buffers to the system.
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.
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).
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.