beautypg.com

Hpcpi product limitations, Skid, Attribution issues – HP XC System 3.x Software User Manual

Page 115: Inline routines, Skid attribution issues

background image

number of samples
recorded for the event

3

14

The fully-qualified path
name for the image file.

A table with
per-instruction statistics.
Each line contains event
counts for an instruction.

multiplied by the
sampling interval.

4

The epoch. See

“HPCPI

Database Directories and
Files” (page 113)

for the

epoch name format.

15

10

The virtual memory
address of the instruction
pointer.

The number of samples
recorded for the event.

11

5

The event name.

The host name of the
system on which hpcpid
ran.

16

The calculated event count
for the first event
(CPU_CYCLES in this
example).

12

The sampling interval. If
n

is the sampling interval,

HPCPI records the
instruction pointer every

6

The starting virtual
memory address for the
loaded image.

17

The calculated event count
for the second event

n

th occurrence of the

event.

(NOPS_RETIRED in this
example).

18

The calculated event count
for the third event
(IA64_INST_RETIRED in
this example).

HPCPI Product Limitations

The following sections describe HPCPI product limitations.

Skid

When a PMU counter overflows, the PMU calls the interrupt handler to record the value of the
instruction pointer. However, there is a lag—or skid—that occurs because of the delay between
the time the instruction enters the execution pipeline and when the PMU detects the event counter
overflow. There is also a delay between the time the PMU detects the overflow and when the
interrupt handler records the instruction pointer. In addition, the interrupt handler records the
instruction pointer for the instruction to return to after handling the interrupt. Because of this
lag, the recorded instruction pointer is typically several or many instructions after the instruction
that caused the event. These lags are common to all instruction-pointer sampling profilers and
HPCPI does not attempt to model the system to correct for this. As a result, HP recommends
that you examine the assembly code surrounding regions where high event counts occur and
consider if the surrounding code may be triggering the events.

Attribution Issues

Associating PMU events with specific lines in source code is problematic with modern compilers
and multi-issue architectures, especially when code optimization is performed.

Inline Routines

When a program contains short routines or routines that are called only once, compilers often
inline, or insert a copy of the function's instructions directly within the calling procedure.
When hpcpiprof displays data, it attempts to detect inlined procedures and attribute events
to the source of the inlined procedure instead of the calling procedure. If hpcpiprof cannot not
detect or determine the source of an inline procedure, it attributes the events to the calling
procedure.
The hpcpilist utility always shows the instructions for inlined procedures and the events
counts for the instructions within the calling procedure.
Note that there can be differences in hpcpiprof output and hpcpilist output for inlined
procedures, because hpcpiprof might attribute events to the inlined procedures, but hpcpilist
shows these events only in the calling procedure.

HPCPI Product Limitations

115