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
          kmaps            - Print kernel and module maps (perf script
                             and perf report without browser)

--debug-file::
	Write debug output to a specified file.

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-arm-spe[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-iostat[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]
