oprofile man page

oprofile — a statistical profiler for Linux systems, capable of profiling all running code at low overhead; also included is a set of post-profiling analysis tools, as well as a simple event counting tool

Synopsis

operf [ options ]
ocount [ options ]
opreport [ options ] [ profile specification ]
opannotate [ options ] [ profile specification ]
oparchive [ options ] [ profile specification ]
opgprof [ options ] [ profile specification ]

Description

OProfile is a profiling system for systems running Linux 2.6.31 and greater. OProfile makes use of the hardware performance counters provided on Intel, AMD, and other processors. OProfile can profile a selected program or process or the whole system. OProfile can also be used to collect cumulative event counts at the application, process, or system level.
For a gentle guide to using OProfile, please read the HTML documentation listed in See Also.

Operf

operf is a performance profiler tool for Linux.

Ocount

ocount is an event counting tool for Linux.

Opreport

opreport gives image and symbol-based profile summaries for the whole system or a subset of binary images.

Opannotate

opannotate can produce annotated source or mixed source and assembly output.

Oparchive

oparchive produces oprofile archive for offline analysis

Opgprof

opgprof can produce a gprof-format profile for a single binary.

Profile Specifications

Various optional profile specifications may be used with the post-profiling tools. A profile specification is some combination of the parameters listed below. ( Note: Enclosing part of a profile specification in curly braces { } can be used for differential profiles with opreport, but the braces must be surrounded by whitespace.)

archive:archive
Path to the archive to inspect, as generated by oparchive
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".
session-exclude:sessionlist
A comma-separated list of sessions to exclude.
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/operf,*op*,./oprofpp'
image-exclude:imagelist
Same as image:, but the matching images are excluded.
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.
lib-image-exclude:imagelist
Same as <option>lib-image:</option>, but the matching images are excluded.
event:eventname
The symbolic event name to match on, e.g. event:DATA_MEM_REFS.
count:eventcount
The event count to match on, e.g. event:DATA_MEM_REFS count:30000.
unit-mask:maskvalue
The unit mask value of the event to match on, e.g. unit-mask:1.
cpu:cpulist
Only consider profiles for the given numbered CPU (starting from zero). This is only useful when using CPU profile separation.
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.
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.

Environment

No special environment variables are recognized by OProfile.

Files

/usr/share/doc/oprofile/oprofile.html
OProfile user guide.
/usr/share/doc/oprofile/opreport.xsd
Schema file for opreport XML output.
/usr/share/doc/oprofile/ophelp.xsd
Schema file for ophelp XML output.
/usr/share/oprofile/
Event description files used by OProfile.
<session-dir>/samples/operf.log
The profiler log file.
<session-dir>/samples/current
The location of the generated sample files.

Version

This man page is current for oprofile-1.1.0.

See Also

/usr/share/doc/oprofile/, operf(1), ocount(1), opreport(1), opannotate(1), oparchive(1), opgprof(1), gprof(1), CPU vendor architecture manuals

Authors

John Levon <levon@movementarian.org> is the primary author. See the documentation for other contributors.

Referenced By

get_hugepage_region(3), get_huge_pages(3), gethugepagesizes(3), getpagesizes(3), hugeadm(8), hugectl(8), hugeedit(8), libhugetlbfs(7), lookup_dcookie(2), opannotate(1), oparchive(1), op-check-perfevents(1), opgprof(1), ophelp(1), opimport(1), opreport(1), pagesize(1).

Fri 05 February 2016 oprofile 1.1.0