kernel_optimize_test/tools/perf
Andreas Gerstmayr 5287f92692 perf script: Add flamegraph.py script
This script works in tandem with d3-flame-graph to generate flame graphs
from perf. It supports two output formats: JSON and HTML (the default).
The HTML format will look for a standalone d3-flame-graph template file
in /usr/share/d3-flame-graph/d3-flamegraph-base.html and fill in the
collected stacks.

Usage:

    perf record -a -g -F 99 sleep 60
    perf script report flamegraph

Combined:

    perf script flamegraph -a -F 99 sleep 60

Committer testing:

Tested both with "PYTHON=python3" and with the default, that uses
python2-devel:

Complete set of instructions:

  $ mkdir /tmp/build/perf
  $ make PYTHON=python3 -C tools/perf O=/tmp/build/perf install-bin
  $ export PATH=~/bin:$PATH
  $ perf record -a -g -F 99 sleep 60
  $ perf script report flamegraph

Now go and open the generated flamegraph.html file in a browser.

At first this required building with PYTHON=python3, but after I
reported this Andreas was kind enough to send a patch making it work
with both python and python3.

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Brendan Gregg <bgregg@netflix.com>
Cc: Martin Spier <mspier@netflix.com>
Link: http://lore.kernel.org/lkml/20200320151355.66302-1-agerstmayr@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2020-04-16 12:19:14 -03:00
..
arch tools headers: Update x86's syscall_64.tbl with the kernel sources 2020-04-14 11:02:52 -03:00
bench perf bench: Add event synthesis benchmark 2020-04-16 12:19:12 -03:00
Documentation perf bench: Add event synthesis benchmark 2020-04-16 12:19:12 -03:00
examples/bpf Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
include/bpf perf bpf: Remove bpf/ subdir from bpf.h headers used to build bpf events 2020-02-18 10:13:28 -03:00
jvmti
pmu-events perf pmu-events x86: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric 2020-04-03 09:37:56 -03:00
python
scripts perf script: Add flamegraph.py script 2020-04-16 12:19:14 -03:00
tests perf expr: Add expr_ prefix for parse_ctx and parse_id 2020-04-16 12:19:13 -03:00
trace tools headers UAPI: Sync linux/mman.h with the kernel 2020-04-14 09:04:53 -03:00
ui perf report/top TUI: Fix title line formatting 2020-04-03 09:37:55 -03:00
util perf metrictroup: Split the metricgroup__add_metric function 2020-04-16 12:19:13 -03:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
Build
builtin-annotate.c perf annotate: Prefer cmdline option over default config 2020-02-27 10:45:08 -03:00
builtin-bench.c perf bench: Add event synthesis benchmark 2020-04-16 12:19:12 -03:00
builtin-buildid-cache.c
builtin-buildid-list.c
builtin-c2c.c perf c2c: Fix return type for histogram sorting comparision functions 2020-01-14 13:29:21 -03:00
builtin-config.c
builtin-data.c
builtin-diff.c perf tools: Basic support for CGROUP event 2020-04-03 09:37:55 -03:00
builtin-evlist.c
builtin-ftrace.c perf tools: Support CAP_PERFMON capability 2020-04-16 12:19:08 -03:00
builtin-help.c
builtin-inject.c
builtin-kallsyms.c
builtin-kmem.c
builtin-kvm.c
builtin-list.c
builtin-lock.c
builtin-mem.c
builtin-probe.c perf probe: Check return value of strlist__add() for -ENOMEM 2020-02-27 11:03:13 -03:00
builtin-record.c perf record: Add --all-cgroups option 2020-04-03 09:37:55 -03:00
builtin-report.c perf tools: Basic support for CGROUP event 2020-04-03 09:37:55 -03:00
builtin-sched.c perf sched timehist: Add support for filtering on CPU 2020-01-06 11:46:09 -03:00
builtin-script.c perf script: Simplify auxiliary event printing functions 2020-04-16 12:19:12 -03:00
builtin-stat.c perf stat: Honour --timeout for forked workloads 2020-04-16 12:17:41 -03:00
builtin-timechart.c
builtin-top.c perf top: Support hotkey to change sort order 2020-04-03 09:37:55 -03:00
builtin-trace.c perf trace: Resolve prctl's 'option' arg strings to numbers 2020-02-11 16:41:50 -03:00
builtin-version.c
builtin.h
check-headers.sh tools headers: Synchronize linux/bits.h with the kernel sources 2020-04-14 11:40:05 -03:00
command-list.txt
CREDITS
design.txt perf tools: Support CAP_PERFMON capability 2020-04-16 12:19:08 -03:00
Makefile tools: Let O= makes handle a relative path with -C option 2020-03-06 17:08:28 -03:00
Makefile.config perf tools: Support Python 3.8+ in Makefile 2020-04-03 10:03:44 -03:00
Makefile.perf perf: Normalize gcc parameter when generating arch errno table 2020-03-26 11:04:01 -03:00
MANIFEST libperf: Move to tools/lib/perf 2020-01-06 11:46:09 -03:00
perf-archive.sh
perf-completion.sh
perf-read-vdso.c
perf-sys.h
perf-with-kcore.sh
perf.c
perf.h