 |
» |
|
|
|
 |
 |
dcpiwhatcg(1)
NAME
dcpiwhatcg - Where Have All The Cycles Gone (on Alpha 21064/EV4
and 21164/EV5 processors)
SYNOPSIS
dcpiwhatcg [<flags>] image-file [image-file ...]
DESCRIPTION
Given one or more image-files and some profile files, dcpiwhatcg identifies
what percent of the CYCLES samples were spent executing instructions vs.
waiting for stalls of various categories. The output format is the same as
the procedure-level output of dcpicalc(1), except
that it covers all of the procedures in the image-files rather than a single
procedure. See dcpicalc(1) for a detailed discussion
on interpreting the output.
In addition, dcpiwhatcg optionally outputs a sorted list of the
procedures that contain samples blamed on a particular kind of stall, e.g., "Branch
mispredict".
FLAGS
- -help
- Print information about options.
- -pr
- Print a progress report line before analyzing each procedure.
- -stall stall-kind
- Output a sorted list of the procedures that contain samples blamed
on stall-kind. Stall-kind must be the name of a specific dynamic
or static stall as listed in the "Where have all the cycles gone?" output
of dcpiwhatcg or dcpicalc(1).
This option does not work for multiple image-files.
- -version
- Print program version information.
EXECUTION COUNT AND STALL ANALYSIS FLAGS
The following options can be used to control the heuristics for estimating
execution counts 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 counts. The estimates
may still violate flow constraints.
- -tab foo.tab
- Get execution counts from output of dcpix(1) instead
of making estimates, which may be inaccurate.
Requires a .xct file.
- -xct foo.xct
- Get execution
counts from
output of dcpix(1) instead
of making
estimates,
which may
be inaccurate.
Requires
a .tab file.
- -xct_factor
num
- Scales
counts
from
.xct
files
by
num.
Useful
when
you
run
a
program
once
under dcpix(1) but
multiple
(num)
times
under dcpid(1) to
get
more
samples.
Used
in
conjunction
with
-tab
and
-xct.
PROFILE SELECTION 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. 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 oldest epoch if -epoch latest-2 is specified.
- -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 YYYYMMDDHHMM (year-month-day-hours-minutes). For example,
an epoch started on June 11, 2002 at 22:33 would be named 200206112233.
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.
- -epoch all
- Search for profile files in all epochs.
- -ihost <hostnames...> --
- Include just those profile files associated with the specified
host names. The list of host names must be terminated either
via -- or by the end of the option list. The command prints
an error message and fails if both the -ihost and -ehost
options are specified.
- -ehost <hostnames...> --
- Exclude
any profile
files associated
with the
specified
host names.
The list
of host names
must be terminated
either via
-- or by
the end of
the option
list. The
command prints
an error
message and
fails if
both the
-ihost and
-ehost options
are specified.
- -label <label>
- Search
for
profile
files
with
the
specified
label(s)
(see dcpilabel(1)).
This
option
can
be
repeated
multiple
times.
If
no
labels
are
specified
on
the
command
line,
profile
file
labels
are
ignored
entirely.
If
any
labels
are
specified
on
the
command
line,
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
the
automatic
profile
lookup
mechanism,
or
explicitly
name
the
profile
file
with
the -profile option;
but
don't
do
both.)
PROFILE SORTING FLAGS
- [-s | -st | -sp] statistic
- The named statistic is used to sort the profile output. For -s or -st,
the statistic is assumed to be an aggregate event; for -sp it
is assumed to be a ProfileMe statistic. If this option is not specified,
the output is sorted so that the procedure or image that accounts for
the most cycles is listed first; if the database contains ProfileMe statistics,
the sort key is valid:retdelay, and otherwise the sort key is cycles.
If neither of these statistics appears in the output, the first column
in the output is used as the sort key. If this option is specified, the
statistic specified as the sort key does not need to be listed explicitly
in a -event or -pm specification; it will be included
automatically.
TYPICAL USAGE
dcpiwhatcg -db db /vmunix
dcpiwhatcg -db db -events cycles /vmunix
dcpiwhatcg -db db -stall "ITB/I-cache miss" myprog
dcpiwhatcg -db db -stall Slotting /vmunix
LIMITATIONS
Dcpiwhatcg works only on Alpha 21064/EV4 and 21164/EV5 processors. For
Alpha 21264a/EV67 and later processors, use insights gained from the ProfileMe
statistics instead.
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), dcpi2bb(1), dcpi2pix(1), dcpi2ps(1), dcpicalc(1), dcpicat(1), dcpicc(1), dcpicoverage(1), dcpictl(1), dcpid(1), dcpidiff(1), dcpidis(1), dcpiepoch(1), dcpiflow(1), dcpiflush(1), dcpikdiff(1), dcpilabel(1), dcpildlatency(1), dcpilist(1), dcpiprof(1), dcpiprofileme(1), dcpiquit(1), dcpiscan(1), dcpisource(1), dcpistats(1), dcpisumxct(1), dcpitar(1), dcpitopcounts(1), dcpitopstalls(1), dcpiuninstall(1), dcpiupcalls(1), dcpivarg(1), dcpivcat(1), dcpiversion(1), dcpivlst(1), dcpivprofiler(1), dcpix(1), dcpiformat(4), dcpiexclusions(4)
For more information, see the DCPI project home page http://h30097.www3.hp.com/dcpi.
COPYRIGHT
Copyright 1996-2004, Hewlett-Packard Company.
All rights reserved.
|
|