 |
» |
|
|
|
 |
 |
dcpitopstalls(1)
NAME
dcpitopstalls - List the instructions with the most stall cycles
SYNOPSIS
dcpitopstalls [<options>] image-file [image-file ...]
DESCRIPTION
Given one or more image-files and some profile files, dcpitopstalls identifies the N
instructions in the images responsible for the most stall cycles. N defaults to 100.
The output has the form:
1104066 samples (99.99% of all samples) had frequency conf >= medium confidence.
728719 stall cycles with frequency conf >= medium confidence.
Stall cycles of conf >= medium confidence represent 65.99% of all samples.
top 10 stalls of length >= 0:
% cum% cycles freq C avg blame pc procedure file:line
10.0% 10.0% 109885 4998 H 22.0 d 0x12000957c compress compress.c:484
9.9% 19.8% 108776 5513 H 19.7 d 0x120009530 compress compress.c:477
7.8% 27.6% 85668 3836 H 22.3 d 0x12000959c compress compress.c:488
3.0% 30.6% 33412 5513 H 6.1 ? 0x120009518 compress compress.c:467
2.0% 32.6% 22153 2343 H 9.5 d 0x120010fb4 decompress compress.c:731
1.3% 33.9% 14169 2343 H 6.0 dDw 0x120010fa8 decompress compress.c:728
1.3% 35.2% 14102 5513 H 2.6 I 0x120009638 compress compress.c:510
1.0% 36.2% 11385 1516 H 7.5 d 0x120010fd8 decompress compress.c:728
0.9% 37.1% 9861 2343 H 4.2 p 0x120009558 compress compress.c:481
In the listing, each line covers one instruction. The "%" column is the
percentage of all cycles samples that were charged to stalls at the instruction. The
"cum%" column is a running total of the "%" column. The
"cycles" column is the number of cycles samples attributed to stalls. The
"freq" column is the execution frequency of the instruction. The "C"
column is the confidence level of the frequency: 'L' for low, 'M' for medium, and 'H' for
high confidence. The "avg" column is the average length of the stall (= cycles /
freq). The "blame" column identifies the possible causes for the stall using the
same 1-character codes as dcpicalc(1). The "pc"
column is the PC of the instruction. The "procedure" column is the name of the
procedure containing the instruction or, if the name has been stripped, procedure's entry
address. If more than one image-file is supplied, an additional column identifies which
image contains the procedure. The "file:line" column is the source file name and
line number associated with the instruction.
FLAGS
- -help
- Print information about options.
- -min int
- Specifies the minimum average stall length; stalls of fewer cycles will be tallied but
not listed. Defaults to 0.
- -n int
- Specifies the maximum number of instructions to list. Defaults to 100.
- -no_src
- Omit the file:line column so that the output is more likely to fit in 80 columns.
- -version
- Print program version information.
FREQUENCY AND STALL ANALYSIS FLAGS
The following options can be used to control the heuristics for estimating execution
frequencies and identifying the causes of stalls.
- -conf_low
- Generate low, medium, and high confidence data.
- -conf_med
- Generate medium and high confidence data. (default)
- -conf_high
- Generate only high confidence data.
- -cross_procedure [optimistic | pessimistic | selective]
- Choose what assumption to make when a procedure call boundary is encountered while
looking for reasons to explain dynamic stalls. A procedure call boundary is either a call
made by the procedure being analyzed or the beginning or end of that procedure. With pessimistic,
assume that whatever happens outside the analyzed procedure can cause a dynamic stall
inside it. With optimistic, assume that it cannot. With selective, the
assumption is based on standard procedure call convention. (The default is optimistic.)
- -do_gp
- Use a (non-linear time) constraint solver to exploit global flow constraints when
estimating execution frequencies. The frequency estimates may still violate flow
constraints.
PROFILE FILE FLAGS
By default, this command automatically finds all of the relevant profile files. The
following options can be used to guide the search for the profile files.
- -db <directory name>
- Search for profile files in the specified profile database directory. The directory name
should be the same name as the one specified when dcpid was started. I.e., the
named directory should contain a set of epochs. If this option is not specified, the
directory name is obtained from the DCPIDB environment variable. If neither this
option, nor the DCPIDB environment variable are set, the name of the directory
used by the last invocation of dcpid on this machine is used. If none of these
methods succeed in finding the appropriate directory, and no explicit set of profile files
is provided via the -profiles option, then the command fails.
- -epoch latest
- Search for profile files in the latest epoch. This is the default.
- -epoch latest-k
- Search for profile files in the "k+1"th oldest epoch. For example, search in
the third last epoch if "-epoch latest-2" is specified.
- -epoch all
- Search for profile files in all epochs.
- -epoch <name>
- Search for profile files in the named epoch. The epoch name should be the name of a
subdirectory corresponding to a single epoch within the profile database directory. Epoch
subdirectory names usually take the form YYMMDDHHMM
(year-month-day-hours-minutes). For example, an epoch started on December 4, 1996 at 23:34
is named 9612042334. If an epoch is given a symbolic name by creating a symbol
link to the actual epoch directory, then the symbolic name can also be used as an argument
to the -epoch option.
- -events all
- Search for profile files corresponding to all event types such as cycles, icache misses,
branch mispredictions, etc. This is the default.
- -events type(+type)*
- Search for profiles files for the specified event types. For example, search for cycles,
icache misses, and data cache misses when the option -events cycles+imiss+dmiss
is specified.
- -events all(-type)*
- Search for profile files for all event types except for the specified types. For
example, search for all event types except for branch mispredictions when the option -events
all-branchmp is specified.
- -label <label>
- Search for profile files with the specified label (see dcpilabel). If no labels
are specified on the command line, profile file labels are ignored entirely. If any labels
are specified on the command line (this option can be repeated several times), only
profile files that have one of the specified labels are used.
- -profiles <file names...> --
- Use just the profile files named by the specified file names. The list of profile file
names can be terminated either via --, or by the end of the option list. The
command prints an error message and fails if the -profiles option is used in
conjunction with any of the earlier automatic profile finding options. (Use either the
automatic profile lookup mechanism, or explicitly name the profile file with the -profile
option, but not both.)
TYPICAL USAGE
dcpitopstalls myprog.exe
dcpitopstalls -conf_low -n 50 -min 3 myprog.exe
LIMITATIONS
The source file name and line number information, which is extracted from the symbol
table, is inaccurate for some optimized programs.
Because an internal DCPI interface was not designed for whole-program analysis, the
running time of this program is quadratic rather than linear in size of the image file.
Thus, this program runs slowly on large image files.
SEE ALSO
dcpi(1), dcpiflow(1), dcpiprof(1), dcpilist(1), dcpidis(1), dcpiscan(1), dcpid(1), dcpiepoch(1), dcpiflush(1), dcpicalc(1), dcpilabel(1), dcpi2ps(1), dcpicat(1), dcpiquit(1), dcpidiff(1), dcpiwhatcg(1), dcpictl(1), dcpiformat(4)
For more information, see the HP Continuous Profiling Infrastructure project home page (http://h30097.www3.hp.com/dcpi).
COPYRIGHT
Copyright 1996-2004, Hewlett-Packard Development Company, L.P.
AUTHOR
Mark Vandevoorde
This page was generated automatically by mtex software.
|
|