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.2.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 04 August 2017 oprofile 1.2.0