perf(1)
=======

NAME
----
perf - Performance analysis tools for Linux

SYNOPSIS
--------
[verse]
'perf' [--version] [--help] [OPTIONS] COMMAND [ARGS]

OPTIONS
-------
-h::
--help::
        Run perf help command.

-v::
--version::
        Display perf version.

-vv::
        Print the compiled-in status of libraries.

--exec-path::
        Display or set exec path.

--html-path::
        Display html documentation path.

-p::
--paginate::
        Set up pager.

--no-pager::
        Do not set pager.

--buildid-dir::
        Setup buildid cache directory. It has higher priority
        than buildid.dir config file option.

--list-cmds::
        List the most commonly used perf commands.

--list-opts::
        List available perf options.

--debugfs-dir::
        Set debugfs directory or set environment variable PERF_DEBUGFS_DIR.

--debug::
        Setup debug variable (see list below) in value
        range (0, 10). Use like:
          --debug verbose   # sets verbose = 1
          --debug verbose=2 # sets verbose = 2

        List of debug variables allowed to set:
          verbose          - general debug messages
          ordered-events   - ordered events object debug messages
          data-convert     - data convert command debug messages
          stderr           - write debug output (option -v) to stderr
                             in browser mode
          perf-event-open  - Print perf_event_open() arguments and
                             return value

DESCRIPTION
-----------
Performance counters for Linux are a new kernel-based subsystem
that provide a framework for all things performance analysis. It
covers hardware level (CPU/PMU, Performance Monitoring Unit) features
and software features (software counters, tracepoints) as well.

SEE ALSO
--------
linkperf:perf-stat[1], linkperf:perf-top[1],
linkperf:perf-record[1], linkperf:perf-report[1],
linkperf:perf-list[1]

linkperf:perf-annotate[1],linkperf:perf-archive[1],
linkperf:perf-bench[1], linkperf:perf-buildid-cache[1],
linkperf:perf-buildid-list[1], linkperf:perf-c2c[1],
linkperf:perf-config[1], linkperf:perf-data[1], linkperf:perf-diff[1],
linkperf:perf-evlist[1], linkperf:perf-ftrace[1],
linkperf:perf-help[1], linkperf:perf-inject[1],
linkperf:perf-intel-pt[1], linkperf:perf-kallsyms[1],
linkperf:perf-kmem[1], linkperf:perf-kvm[1], linkperf:perf-lock[1],
linkperf:perf-mem[1], linkperf:perf-probe[1], linkperf:perf-sched[1],
linkperf:perf-script[1], linkperf:perf-test[1],
linkperf:perf-trace[1], linkperf:perf-version[1]
