blob: bce94a9e76e354a665a1d06a7e4d5b69a432e22e [file] [log] [blame]
Upstreamcc2ee171970-01-12 13:46:40 +00001.TH OPROFILE 1 "@DATE@" "oprofile @VERSION@"
2.UC 4
3.SH NAME
4oprofile \- a system-wide profiler
5.SH SYNOPSIS
6.br
7.B opcontrol
8[
9.I options
10]
11.br
12.B opreport
13[
14.I options
15]
16[ profile specification ]
17.br
18.B opannotate
19[
20.I options
21]
22[ profile specification ]
23.br
24.B oparchive
25[
26.I options
27]
28[ profile specification ]
29.br
30.B opgprof
31[
32.I options
33]
34[ profile specification ]
35.br
36.SH DESCRIPTION
37OProfile is a profiling system for systems running Linux
382.2, 2.4, and 2.6. Profiling runs transparently in the background and profile
39data can be collected at any time. OProfile makes use of the hardware
40performance counters provided on Intel, AMD, and other processors,
41and uses a timer-interrupt based mechanism on CPUs without counters.
42OProfile can profile the whole system in high detail.
43.br
44For a gentle guide to using OProfile, please read the HTML documentation
45listed in SEE ALSO.
46.br
47.SH OPCONTROL
48.B opcontrol
49is used for starting and stopping the OProfile daemon, and providing set-up
50parameters.
51.SH OPREPORT
52.B opreport
53gives image and symbol-based profile summaries for the whole system or
54a subset of binary images.
55.SH OPANNOTATE
56.B opannotate
57can produce annotated source or mixed source and assembly output.
58.SH OPARCHIVE
59.B oparchive
60produces oprofile archive for offline analysis
61.SH OPGPROF
62.B opgprof
63can produce a gprof-format profile for a single binary.
64
65.SH PROFILE SPECIFICATIONS
66All of the post-profiling tools can take profile specifications,
67which is some combination of the following parameters. Enclosing
68part of a profile specification in curly braces { } can be used
69for differential profiles with
70.B opreport
71.
72
73.TP
74.BI "session:"sessionlist
75A comma-separated list of session names to resolve in. Absence of this
76tag, unlike all others, means "the current session", equivalent to
77specifying "session:current".
78.br
79.TP
80.BI "session-exclude:"sessionlist
81A comma-separated list of sessions to exclude.
82.br
83.TP
84.BI "image:"imagelist
85A comma-separated list of image names to resolve. Each entry may be relative
86path, glob-style name, or full path, e.g.
87opreport 'image:/usr/bin/oprofiled,*op*,./oprofpp'
88.br
89.TP
90.BI "image-exclude:"imagelist
91Same as image:, but the matching images are excluded.
92.br
93.TP
94.BI "lib-image:"imagelist
95Same as image:, but only for images that are for
96a particular primary binary image (namely, an application). This only
97makes sense to use if you're using --separate.
98This includes kernel modules and the kernel when using
99--separate=kernel.
100.br
101.TP
102.BI "lib-image-exclude:"imagelist
103Same as <option>lib-image:</option>, but the matching images
104are excluded.
105.br
106.TP
107.BI "event:"eventname
108The symbolic event name to match on, e.g. event:DATA_MEM_REFS.
109.br
110.TP
111.BI "count:"eventcount
112The event count to match on, e.g. event:DATA_MEM_REFS count:30000.
113.br
114.TP
115.BI "unit-mask:"maskvalue
116The unit mask value of the event to match on, e.g. unit-mask:1.
117.br
118.TP
119.BI "cpu:"cpulist
120Only consider profiles for the given numbered CPU (starting from zero).
121This is only useful when using CPU profile separation.
122.br
123.TP
124.BI "tgid:"pidlist
125Only consider profiles for the given task groups. Unless some program is
126using threads, the task group ID of a process is the same as its process
127ID. This option corresponds to the POSIX notion of a thread group. This
128is only useful when using per-process profile separation.
129.br
130.TP
131.BI "tid:"tidlist
132Only consider profiles for the given threads. When using recent thread
133libraries, all threads in a process share the same task group ID, but
134have different thread IDs. You can use this option in combination with
135tgid: to restrict the results to particular threads within a process.
136This is only useful when using per-process profile separation.
137
138.SH ENVIRONMENT
139No special environment variables are recognised by oprofile.
140
141.SH FILES
142.TP
143.I $HOME/.oprofile/
144Configuration files
145.TP
146.I /root/.oprofile/daemonrc
147Configuration file for opcontrol
148.TP
149.I $prefix/share/oprofile/
150Event description files used by OProfile.
151.TP
152.I /var/lib/oprofile/oprofiled.log
153The user-space daemon logfile.
154.TP
155.I /var/lib/oprofile/opdev, /var/lib/oprofile/ophashmapdev, /var/lib/oprofile/opnotedev
156The device files for communication with the Linux 2.4 kernel module.
157.TP
158.I /dev/oprofile
159The device filesystem for communication with the Linux 2.6 kernel module.
160.TP
161.I /var/lib/oprofile/samples/
162The location of the generated sample files.
163
164.SH VERSION
165.TP
166This man page is current for @PACKAGE@-@VERSION@.
167
168.SH SEE ALSO
169.BR @OP_DOCDIR@,
170.BR opcontrol(1),
171.BR opreport(1),
172.BR opannotate(1),
173.BR oparchive(1),
174.BR opgprof(1),
175.BR gprof(1),
176.BR readprofile(1),
177.BR CPU vendor architecture manuals
178
179.SH COPYRIGHT
180oprofile is Copyright (C) 1998-2004 University of Manchester, UK, John Levon,
181and others.
182OProfile is released under the GNU General Public License, Version 2,
183or (at your option) any later version.
184.SH AUTHORS
185John Levon <levon@movementarian.org> is the primary author. See the documentation
186for other contributors.