.TH OPROFILE 1 "@DATE@" "oprofile @VERSION@"
.UC 4
.SH NAME
oprofile \- a system-wide profiler
.SH SYNOPSIS
.br
.B opcontrol
[
.I options
]
.br
.B opreport
[
.I options
]
[ profile specification ]
.br
.B opannotate
[
.I options
]
[ profile specification ]
.br
.B oparchive
[
.I options
]
[ profile specification ]
.br
.B opgprof
[
.I options
]
[ profile specification ]
.br
.SH DESCRIPTION
OProfile is a profiling system for systems running Linux
2.6 and greater. Profiling runs transparently in the background and profile
data can be collected at any time. OProfile makes use of the hardware
performance counters provided on Intel, AMD, and other processors,
and uses a timer-interrupt based mechanism on CPUs without counters.
OProfile can profile the whole system in high detail.
.br
For a gentle guide to using OProfile, please read the HTML documentation
listed in SEE ALSO.
.br
.SH OPCONTROL
.B opcontrol
is used for starting and stopping the OProfile daemon, and providing set-up
parameters.
.SH OPREPORT
.B opreport
gives image and symbol-based profile summaries for the whole system or
a subset of binary images.
.SH OPANNOTATE
.B opannotate
can produce annotated source or mixed source and assembly output.
.SH OPARCHIVE
.B oparchive
produces oprofile archive for offline analysis
.SH OPGPROF
.B opgprof
can produce a gprof-format profile for a single binary.

.SH PROFILE SPECIFICATIONS
All of the post-profiling tools can take profile specifications,
which is some combination of the following parameters. Enclosing
part of a profile specification in curly braces { } can be used
for differential profiles with
.B opreport
; the braces
.B must
be surrounded by whitespace.

.TP
.BI "archive:"archive
Path to the archive to inspect, as generated by
.B oparchive
.br
.TP
.BI "session:"sessionlist
A comma-separated list of session names to resolve in. Absence of this
tag, unlike all others, means "the current session", equivalent to
specifying "session:current".
.br
.TP
.BI "session-exclude:"sessionlist
A comma-separated list of sessions to exclude.
.br
.TP
.BI "image:"imagelist
A comma-separated list of image names to resolve. Each entry may be relative
path, glob-style name, or full path, e.g.
opreport 'image:/usr/bin/oprofiled,*op*,./oprofpp'
.br
.TP
.BI "image-exclude:"imagelist
Same as image:, but the matching images are excluded.
.br
.TP
.BI "lib-image:"imagelist
Same as image:, but only for images that are for
a particular primary binary image (namely, an application). This only
makes sense to use if you're using --separate.
This includes kernel modules and the kernel when using
--separate=kernel.
.br
.TP
.BI "lib-image-exclude:"imagelist
Same as <option>lib-image:</option>, but the matching images
are excluded.
.br
.TP
.BI "event:"eventname
The symbolic event name to match on, e.g. event:DATA_MEM_REFS.
.br
.TP
.BI "count:"eventcount
The event count to match on, e.g. event:DATA_MEM_REFS count:30000.
.br
.TP
.BI "unit-mask:"maskvalue
The unit mask value of the event to match on, e.g. unit-mask:1.
.br
.TP
.BI "cpu:"cpulist
Only consider profiles for the given numbered CPU (starting from zero).
This is only useful when using CPU profile separation.
.br
.TP
.BI "tgid:"pidlist
Only consider profiles for the given task groups. Unless some program is
using threads, the task group ID of a process is the same as its process
ID. This option corresponds to the POSIX notion of a thread group. This
is only useful when using per-process profile separation.
.br
.TP
.BI "tid:"tidlist
Only consider profiles for the given threads. When using recent thread
libraries, all threads in a process share the same task group ID, but
have different thread IDs. You can use this option in combination with
tgid: to restrict the results to particular threads within a process.
This is only useful when using per-process profile separation.

.SH ENVIRONMENT
No special environment variables are recognised by oprofile.

.SH FILES
.TP
.I $HOME/.oprofile/
Configuration files
.TP
.I /root/.oprofile/daemonrc
Configuration file for opcontrol
.TP
.I @prefix@/share/oprofile/
Event description files used by OProfile.
.TP
.I /var/lib/oprofile/samples/oprofiled.log
The user-space daemon logfile.
.TP
.I /dev/oprofile
The device filesystem for communication with the Linux kernel module. 
.TP
.I /var/lib/oprofile/samples/
The location of the generated sample files.

.SH VERSION
.TP
This man page is current for @PACKAGE@-@VERSION@.

.SH SEE ALSO
.BR @OP_DOCDIR@,
.BR opcontrol(1),
.BR opreport(1),
.BR opannotate(1),
.BR oparchive(1),
.BR opgprof(1),
.BR gprof(1),
.BR readprofile(1),
.BR "CPU vendor architecture manuals"

.SH COPYRIGHT
oprofile is Copyright (C) 1998-2004 University of Manchester, UK, John Levon,
and others.
OProfile is released under the GNU General Public License, Version 2,
or (at your option) any later version.
.SH AUTHORS
John Levon <levon@movementarian.org> is the primary author. See the documentation
for other contributors.
