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-amd-ibs[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]
