kernel_optimize_test/tools/perf/util
Jin Yao 6f7164fa23 perf report: Sort by sampled cycles percent per block for stdio
It would be useful to support sorting for all blocks by the sampled
cycles percent per block. This is useful to concentrate on the globally
hottest blocks.

This patch implements a new option "--total-cycles" which sorts all
blocks by 'Sampled Cycles%'. The 'Sampled Cycles%' is the percent:

 percent = block sampled cycles aggregation / total sampled cycles

Note that, this patch only supports "--stdio" mode.

For example,

  # perf record -b ./div
  # perf report --total-cycles --stdio
  # To display the perf.data header info, please use --header/--header-only options.
  #
  # Total Lost Samples: 0
  #
  # Samples: 2M of event 'cycles'
  # Event count (approx.): 2753248
  #
  # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles                             [Program Block Range]      Shared Object
  # ...............  ..............  ...........  ..........  ................................................  .................
  #
             26.04%            2.8M        0.40%          18                            [div.c:42 -> div.c:39]                div
             15.17%            1.2M        0.16%           7                [random_r.c:357 -> random_r.c:380]       libc-2.27.so
              5.11%          402.0K        0.04%           2                            [div.c:27 -> div.c:28]                div
              4.87%          381.6K        0.04%           2                    [random.c:288 -> random.c:291]       libc-2.27.so
              4.53%          381.0K        0.04%           2                            [div.c:40 -> div.c:40]                div
              3.85%          300.9K        0.02%           1                            [div.c:22 -> div.c:25]                div
              3.08%          241.1K        0.02%           1                          [rand.c:26 -> rand.c:27]       libc-2.27.so
              3.06%          240.0K        0.02%           1                    [random.c:291 -> random.c:291]       libc-2.27.so
              2.78%          215.7K        0.02%           1                    [random.c:298 -> random.c:298]       libc-2.27.so
              2.52%          198.3K        0.02%           1                    [random.c:293 -> random.c:293]       libc-2.27.so
              2.36%          184.8K        0.02%           1                          [rand.c:28 -> rand.c:28]       libc-2.27.so
              2.33%          180.5K        0.02%           1                    [random.c:295 -> random.c:295]       libc-2.27.so
              2.28%          176.7K        0.02%           1                    [random.c:295 -> random.c:295]       libc-2.27.so
              2.20%          168.8K        0.02%           1                        [rand@plt+0 -> rand@plt+0]                div
              1.98%          158.2K        0.02%           1                [random_r.c:388 -> random_r.c:388]       libc-2.27.so
              1.57%          123.3K        0.02%           1                            [div.c:42 -> div.c:44]                div
              1.44%          116.0K        0.42%          19                [random_r.c:357 -> random_r.c:394]       libc-2.27.so
              0.25%          182.5K        0.02%           1                [random_r.c:388 -> random_r.c:391]       libc-2.27.so
              0.00%              48        1.07%          48        [x86_pmu_enable+284 -> x86_pmu_enable+298]  [kernel.kallsyms]
              0.00%              74        1.64%          74             [vm_mmap_pgoff+0 -> vm_mmap_pgoff+92]  [kernel.kallsyms]
              0.00%              73        1.62%          73                         [vm_mmap+0 -> vm_mmap+48]  [kernel.kallsyms]
              0.00%              63        0.69%          31                       [up_write+0 -> up_write+34]  [kernel.kallsyms]
              0.00%              13        0.29%          13      [setup_arg_pages+396 -> setup_arg_pages+413]  [kernel.kallsyms]
              0.00%               3        0.07%           3      [setup_arg_pages+418 -> setup_arg_pages+450]  [kernel.kallsyms]
              0.00%             616        6.84%         308   [security_mmap_file+0 -> security_mmap_file+72]  [kernel.kallsyms]
              0.00%              23        0.51%          23  [security_mmap_file+77 -> security_mmap_file+87]  [kernel.kallsyms]
              0.00%               4        0.02%           1                  [sched_clock+0 -> sched_clock+4]  [kernel.kallsyms]
              0.00%               4        0.02%           1                 [sched_clock+9 -> sched_clock+12]  [kernel.kallsyms]
              0.00%               1        0.02%           1                [rcu_nmi_exit+0 -> rcu_nmi_exit+9]  [kernel.kallsyms]

Committer testing:

This should provide material for hours of endless joy, both from looking
for suspicious things in the implementation of this patch, such as the
top one:

  # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles                          [Program Block Range]     Shared Object
              2.17%            1.7M        0.08%         607   [compiler.h:199 -> common.c:221]              [kernel.vmlinux]

As well from things that look legit:

  # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles                          [Program Block Range]     Shared Object
              0.16%          123.0K        0.60%        4.7K   [nospec-branch.h:265 -> nospec-branch.h:278]  [kernel.vmlinux]

:-)

Very short system wide taken branches session:

  # perf record -h -b

   Usage: perf record [<options>] [<command>]
      or: perf record [<options>] -- <command> [<options>]

      -b, --branch-any      sample any taken branches

  #
  # perf record -b
  ^C[ perf record: Woken up 595 times to write data ]
  [ perf record: Captured and wrote 156.672 MB perf.data (196873 samples) ]

  #
  # perf evlist -v
  cycles: size: 112, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|CPU|PERIOD|BRANCH_STACK, read_format: ID, disabled: 1, inherit: 1, mmap: 1, comm: 1, freq: 1, task: 1, precise_ip: 3, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, ksymbol: 1, bpf_event: 1, branch_sample_type: ANY
  #
  # perf report --total-cycles --stdio
  # To display the perf.data header info, please use --header/--header-only options.
  #
  # Total Lost Samples: 0
  #
  # Samples: 6M of event 'cycles'
  # Event count (approx.): 6299936
  #
  # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles                                                   [Program Block Range]         Shared Object
  # ...............  ..............  ...........  ..........  ......................................................................  ....................
  #
              2.17%            1.7M        0.08%         607                                        [compiler.h:199 -> common.c:221]      [kernel.vmlinux]
              1.75%            1.3M        8.34%       65.5K    [memset-vec-unaligned-erms.S:147 -> memset-vec-unaligned-erms.S:151]          libc-2.29.so
              0.72%          544.5K        0.03%         230                                      [entry_64.S:657 -> entry_64.S:662]      [kernel.vmlinux]
              0.56%          541.8K        0.09%         672                                        [compiler.h:199 -> common.c:300]      [kernel.vmlinux]
              0.39%          293.2K        0.01%         104                                    [list_debug.c:43 -> list_debug.c:61]      [kernel.vmlinux]
              0.36%          278.6K        0.03%         272                                    [entry_64.S:1289 -> entry_64.S:1308]      [kernel.vmlinux]
              0.30%          260.8K        0.07%         564                              [clear_page_64.S:47 -> clear_page_64.S:50]      [kernel.vmlinux]
              0.28%          215.3K        0.05%         369                                            [traps.c:623 -> traps.c:628]      [kernel.vmlinux]
              0.23%          178.1K        0.04%         278                                      [entry_64.S:271 -> entry_64.S:275]      [kernel.vmlinux]
              0.20%          152.6K        0.09%         706                                      [paravirt.c:177 -> paravirt.c:179]      [kernel.vmlinux]
              0.20%          155.8K        0.05%         373                                      [entry_64.S:153 -> entry_64.S:175]      [kernel.vmlinux]
              0.18%          136.6K        0.03%         222                                                [msr.h:105 -> msr.h:166]      [kernel.vmlinux]
              0.16%          123.0K        0.60%        4.7K                            [nospec-branch.h:265 -> nospec-branch.h:278]      [kernel.vmlinux]
              0.16%          118.3K        0.01%          44                                      [entry_64.S:632 -> entry_64.S:657]      [kernel.vmlinux]
              0.14%          104.5K        0.00%          28                                          [rwsem.c:1541 -> rwsem.c:1544]      [kernel.vmlinux]
              0.13%           99.2K        0.01%          53                                      [spinlock.c:150 -> spinlock.c:152]      [kernel.vmlinux]
              0.13%           95.5K        0.00%          35                                              [swap.c:456 -> swap.c:471]      [kernel.vmlinux]
              0.12%           96.2K        0.05%         407                              [copy_user_64.S:175 -> copy_user_64.S:209]      [kernel.vmlinux]
              0.11%           85.9K        0.00%          31                                        [swap.c:400 -> page-flags.h:188]      [kernel.vmlinux]
              0.10%           73.0K        0.01%          52                                          [paravirt.h:763 -> list.h:131]      [kernel.vmlinux]
              0.07%           56.2K        0.03%         214                                      [filemap.c:1524 -> filemap.c:1557]      [kernel.vmlinux]
              0.07%           54.2K        0.02%         145                                        [memory.c:1032 -> memory.c:1049]      [kernel.vmlinux]
              0.07%           50.3K        0.00%          39                                            [mmzone.c:49 -> mmzone.c:69]      [kernel.vmlinux]
              0.06%           48.3K        0.01%          40                                   [paravirt.h:768 -> page_alloc.c:3304]      [kernel.vmlinux]
              0.06%           46.7K        0.02%         155                                        [memory.c:1032 -> memory.c:1056]      [kernel.vmlinux]
              0.06%           46.9K        0.01%         103                                              [swap.c:867 -> swap.c:902]      [kernel.vmlinux]
              0.06%           47.8K        0.00%          34                                    [entry_64.S:1201 -> entry_64.S:1202]      [kernel.vmlinux]

 -----------------------------------------------------------

 v7:
 ---
 Use use_browser in report__browse_block_hists for supporting
 stdio and potential tui mode.

 v6:
 ---
 Create report__browse_block_hists in block-info.c (codes are
 moved from builtin-report.c). It's called from
 perf_evlist__tty_browse_hists.

 v5:
 ---
 1. Move all block functions to block-info.c

 2. Move the code of setting ms in block hist_entry to
    other patch.

 v4:
 ---
 1. Use new option '--total-cycles' to replace
    '-s total_cycles' in v3.

 2. Move block info collection out of block info
    printing.

 v3:
 ---
 1. Use common function block_info__process_sym to
    process the blocks per symbol.

 2. Remove the nasty hack for skipping calculation
    of column length

 3. Some minor cleanup

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Reviewed-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jin Yao <yao.jin@intel.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20191107074719.26139-6-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-11-07 10:14:48 -03:00
..
c++ perf clang: Delete needless util-cxx.h header 2019-08-28 18:14:57 -03:00
cs-etm-decoder perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
include perf tools: Remove old baggage that is util/include/linux/ctype.h 2019-06-25 18:31:12 -03:00
intel-pt-decoder perf intel-pt: Use shared x86 insn decoder 2019-08-31 22:27:52 -03:00
libunwind perf tools: Remove debug.h from places where it is not needed 2019-09-20 09:19:20 -03:00
scripting-engines perf scripting engines: Iterate on tep event arrays directly 2019-10-18 12:07:46 -03:00
annotate.c perf annotate: Fix heap overflow 2019-11-07 08:30:18 -03:00
annotate.h perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -03:00
archinsn.h perf script: Support insn output for normal samples 2019-03-11 11:56:02 -03:00
arm-spe-pkt-decoder.c
arm-spe-pkt-decoder.h
arm-spe.c perf env: Remove needless cpumap.h header 2019-09-20 09:19:21 -03:00
arm-spe.h
auxtrace.c perf auxtrace: Add auxtrace_cache__remove() 2019-11-06 15:43:06 -03:00
auxtrace.h perf auxtrace: Add auxtrace_cache__remove() 2019-11-06 15:43:06 -03:00
block-info.c perf report: Sort by sampled cycles percent per block for stdio 2019-11-07 10:14:48 -03:00
block-info.h perf report: Sort by sampled cycles percent per block for stdio 2019-11-07 10:14:48 -03:00
block-range.c perf block-range: Add missing headers 2019-01-25 15:12:09 +01:00
block-range.h perf block-range: Add missing headers 2019-01-25 15:12:09 +01:00
bpf_map.c perf bpf: Add bpf_map dumper 2019-02-19 16:11:56 -03:00
bpf_map.h perf bpf: Add bpf_map dumper 2019-02-19 16:11:56 -03:00
bpf-event.c perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
bpf-event.h perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
bpf-loader.c libperf: Add perf_evlist__first()/last() functions 2019-09-25 09:51:48 -03:00
bpf-loader.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
bpf-prologue.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
bpf-prologue.h
branch.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
branch.h perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
Build perf block: Cleanup and refactor block info functions 2019-11-07 09:09:18 -03:00
build-id.c perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
build-id.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
cache.h
cacheline.c perf tools: Remove perf.h from source files not needing it 2019-08-29 17:38:32 -03:00
cacheline.h perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
call-path.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
call-path.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
callchain.c perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
callchain.h perf callchain: Remove needless event.h include 2019-09-20 09:19:21 -03:00
cap.c perf tools: Add helpers to use capabilities if present 2019-08-14 10:48:39 -03:00
cap.h perf tools: Add CAP_SYSLOG define for older systems 2019-08-14 10:59:59 -03:00
cgroup.c perf auxtrace: Uninline functions that touch perf_session 2019-08-31 22:24:10 -03:00
cgroup.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
cloexec.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
cloexec.h
color_config.c perf tools: Remove needless evlist.h include directives 2019-08-31 22:24:10 -03:00
color.c perf tools: Remove needless evlist.h include directives 2019-08-31 22:24:10 -03:00
color.h perf color: Add missing stdarg.g to color.h 2019-01-25 15:12:08 +01:00
comm.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
comm.h perf comm: Remove needless headers from comm.h 2019-01-25 15:12:09 +01:00
compress.h perf report: Implement perf.data record decompression 2019-05-15 16:36:49 -03:00
config.c perf auxtrace: Uninline functions that touch perf_session 2019-08-31 22:24:10 -03:00
config.h
copyfile.c perf tools: Fix mode setting in copyfile_mode_ns() 2019-10-15 12:05:18 -03:00
copyfile.h perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
counts.c perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
counts.h perf counts: Add missing headers needed for types used 2019-08-22 17:16:56 -03:00
cpu-set-sched.h perf tools: Add fallback versions for CPU_{OR,EQUAL}() 2019-02-06 10:00:39 -03:00
cpumap.c perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
cpumap.h perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
cputopo.c perf cpumap: Remove needless includes from cpumap.h 2019-08-22 17:16:57 -03:00
cputopo.h perf env: Remove env.h from other headers where just a fwd decl is needed 2019-08-31 19:10:40 -03:00
cs-etm.c perf cs-etm: Fix definition of macro TO_CS_QUEUE_NR 2019-11-06 15:43:05 -03:00
cs-etm.h perf auxtrace: Uninline functions that touch perf_session 2019-08-31 22:24:10 -03:00
data-convert-bt.c perf session: Return error code for perf_session__new() function on failure 2019-09-20 15:58:11 -03:00
data-convert-bt.h
data-convert.h
data.c perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
data.h perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
db-export.c perf dsos: Move the dsos struct and its methods to separate source files 2019-08-31 22:24:10 -03:00
db-export.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
debug.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
debug.h perf debug: No need to include ui/util.h 2019-09-20 09:19:20 -03:00
demangle-java.c perf tools: Remove debug.h from places where it is not needed 2019-09-20 09:19:20 -03:00
demangle-java.h
demangle-rust.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
demangle-rust.h
dso.c perf dso: Add dso__data_write_cache_addr() 2019-11-06 15:43:06 -03:00
dso.h perf dso: Add dso__data_write_cache_addr() 2019-11-06 15:43:06 -03:00
dsos.c perf dsos: Move the dsos struct and its methods to separate source files 2019-08-31 22:24:10 -03:00
dsos.h perf dsos: Move the dsos struct and its methods to separate source files 2019-08-31 22:24:10 -03:00
dump-insn.c perf script: Fix LBR skid dump problems in brstackinsn 2018-12-28 16:33:02 -03:00
dump-insn.h perf script: Fix LBR skid dump problems in brstackinsn 2018-12-28 16:33:02 -03:00
dwarf-aux.c perf probe: Fix to show calling lines of inlined functions 2019-11-07 08:30:19 -03:00
dwarf-aux.h perf probe: Fix to show function entry line as probe-able 2019-11-06 15:43:06 -03:00
dwarf-regs.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
env.c perf env: Add perf_env__numa_node() 2019-11-06 15:49:39 -03:00
env.h perf env: Add perf_env__numa_node() 2019-11-06 15:49:39 -03:00
event.c perf tools: Move event synthesizing routines to separate .c file 2019-09-20 10:28:21 -03:00
event.h perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
events_stats.h perf tools: Move 'struct events_stats' and prototypes to separate header 2019-08-31 22:24:10 -03:00
evlist.c Merge branch 'perf/urgent' into perf/core, to pick up fixes 2019-10-22 01:15:32 +02:00
evlist.h perf evlist: Introduce append_tp_filter_pid() and append_tp_filter_pids() 2019-10-09 11:23:52 -03:00
evsel_config.h perf evsel: Move config terms to a separate header 2019-09-25 16:26:40 -03:00
evsel_fprintf.c perf evsel: Introduce evsel_fprintf.h 2019-09-25 16:26:34 -03:00
evsel_fprintf.h perf evsel: Introduce evsel_fprintf.h 2019-09-25 16:26:34 -03:00
evsel.c perf evsel: Avoid close(-1) 2019-11-06 15:43:05 -03:00
evsel.h perf evsel: Move config terms to a separate header 2019-09-25 16:26:40 -03:00
evswitch.c perf evswitch: Add hint when not finding specified on/off events 2019-08-15 12:26:13 -03:00
evswitch.h perf evswitch: Introduce init() method to set the on/off evsels from the command line 2019-08-15 12:25:55 -03:00
expr.h
expr.y perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
find-map.c perf tools: Make find_vdso_map() more modular 2019-01-08 13:28:13 -03:00
genelf_debug.c perf tools: Remove perf.h from source files not needing it 2019-08-29 17:38:32 -03:00
genelf.c perf tools: Remove perf.h from source files not needing it 2019-08-29 17:38:32 -03:00
genelf.h perf jvmti: Include JVMTI support for s390 2019-09-25 16:26:41 -03:00
generate-cmdlist.sh
get_current_dir_name.c perf tools: Remove duplicate headers 2019-08-26 11:58:29 -03:00
get_current_dir_name.h perf tools: Move get_current_dir_name() cond prototype out of util.h 2019-07-09 10:13:26 -03:00
group.h
header.c perf tools: Fix resource leak of closedir() on the error paths 2019-10-15 11:54:11 -03:00
header.h perf data: Move perf_dir_version into data.h 2019-11-06 15:43:05 -03:00
help-unknown-cmd.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
help-unknown-cmd.h
hist.c perf hist: Support block formats with compare/sort/display 2019-11-07 10:14:05 -03:00
hist.h perf hist: Count the total cycles of all samples 2019-11-07 09:14:15 -03:00
intel-bts.c libperf: Move 'ids' from 'struct evsel' to 'struct perf_evsel' 2019-09-25 09:51:47 -03:00
intel-bts.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intel-pt.c libperf: Move 'ids' from 'struct evsel' to 'struct perf_evsel' 2019-09-25 09:51:47 -03:00
intel-pt.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intlist.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305 2019-06-05 17:37:04 +02:00
intlist.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
jit.h
jitdump.c perf inject jit: Fix JIT_CODE_MOVE filename 2019-09-30 17:29:49 -03:00
jitdump.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 480 2019-06-19 17:09:51 +02:00
kvm-stat.h perf kvm: Add arch neutral function to choose event for perf kvm record 2019-09-20 10:28:26 -03:00
levenshtein.c
levenshtein.h
llvm-utils.c perf llvm: Make .o saving a debug message, not an info one 2019-11-06 15:43:05 -03:00
llvm-utils.h perf tools: Remove debug.h from header files not needing it 2019-08-29 17:38:32 -03:00
lzma.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
machine.c perf machine: Add kernel_dso() method 2019-11-07 08:30:18 -03:00
machine.h perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
map_groups.h perf map_groups: Introduce for_each_entry() and for_each_entry_safe() iterators 2019-11-06 15:49:39 -03:00
map_symbol.h perf symbols: Introduce map_symbol.h 2019-02-06 10:00:38 -03:00
map.c perf maps: Add for_each_entry()/_safe() iterators 2019-11-06 15:49:25 -03:00
map.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
mem-events.c perf symbols: Move mem_info and branch_info out of symbol.h 2019-08-31 22:27:48 -03:00
mem-events.h perf symbols: Move mem_info and branch_info out of symbol.h 2019-08-31 22:27:48 -03:00
mem2node.c perf env: Remove env.h from other headers where just a fwd decl is needed 2019-08-31 19:10:40 -03:00
mem2node.h perf env: Remove env.h from other headers where just a fwd decl is needed 2019-08-31 19:10:40 -03:00
memswap.c
memswap.h perf memswap: Adopt 'struct u64_swap' from evsel.h 2019-09-20 09:19:22 -03:00
metricgroup.c perf metricgroup: Support multiple events for metricgroup 2019-08-31 22:27:52 -03:00
metricgroup.h perf metricgroup: Scale the metric result 2019-08-31 22:27:52 -03:00
mmap.c libperf: Centralize map refcnt setting 2019-10-10 12:52:41 -03:00
mmap.h libperf: Adopt perf_mmap__read_event() from tools/perf 2019-10-10 11:49:46 -03:00
namespaces.c perf tools: Move event synthesizing routines to separate .c file 2019-09-20 10:28:21 -03:00
namespaces.h perf tools: Move event synthesizing routines to separate .c file 2019-09-20 10:28:21 -03:00
ordered-events.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
ordered-events.h
parse-branch-options.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
parse-branch-options.h
parse-events.c perf parse: Add a deep delete for parse event terms 2019-11-07 08:30:18 -03:00
parse-events.h perf parse: Add a deep delete for parse event terms 2019-11-07 08:30:18 -03:00
parse-events.l perf tools: Add aux-output config term 2019-08-14 10:59:59 -03:00
parse-events.y perf parse: Add a deep delete for parse event terms 2019-11-07 08:30:18 -03:00
parse-regs-options.c perf tools: Avoid 'sample_reg_masks' being const + weak 2019-10-10 09:29:33 -03:00
parse-regs-options.h perf parse-regs: Split parse_regs 2019-05-15 16:36:49 -03:00
path.c perf tools: Remove needless evlist.h include directives 2019-08-31 22:24:10 -03:00
path.h perf tools: Remove needless evlist.h include directives 2019-08-31 22:24:10 -03:00
perf_event_attr_fprintf.c perf evsel: Introduce evsel_fprintf.h 2019-09-25 16:26:34 -03:00
perf_regs.c perf tools: Avoid 'sample_reg_masks' being const + weak 2019-10-10 09:29:33 -03:00
perf_regs.h perf tools: Avoid 'sample_reg_masks' being const + weak 2019-10-10 09:29:33 -03:00
perf-hooks-list.h
perf-hooks.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
perf-hooks.h
PERF-VERSION-GEN perf version: Append 12 git SHA chars to the version string 2019-05-28 18:37:44 -03:00
pmu.c perf parse: Add a deep delete for parse event terms 2019-11-07 08:30:18 -03:00
pmu.h perf list: Hide deprecated events by default 2019-10-19 15:35:01 -03:00
pmu.l
pmu.y
print_binary.c tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
print_binary.h
probe-event.c perf maps: Add for_each_entry()/_safe() iterators 2019-11-06 15:49:25 -03:00
probe-event.h perf-probe: Add user memory access attribute support 2019-05-25 23:04:42 -04:00
probe-file.c perf probe: Add missing build-id.h header. 2019-09-20 09:19:20 -03:00
probe-file.h perf-probe: Add user memory access attribute support 2019-05-25 23:04:42 -04:00
probe-finder.c perf probe: Skip overlapped location on searching variables 2019-11-07 08:30:19 -03:00
probe-finder.h tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
pstack.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
pstack.h
python-ext-sources perf evsel: Introduce evsel_fprintf.h 2019-09-25 16:26:34 -03:00
python.c libperf: Adopt perf_mmap__read_event() from tools/perf 2019-10-10 11:49:46 -03:00
rb_resort.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
rblist.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305 2019-06-05 17:37:04 +02:00
rblist.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
record.c libperf: Add perf_evlist__first()/last() functions 2019-09-25 09:51:48 -03:00
record.h perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
rlimit.c perf tools: Introduce rlimit__bump_memlock() helper 2019-07-09 14:59:11 -03:00
rlimit.h perf tools: Introduce rlimit__bump_memlock() helper 2019-07-09 14:59:11 -03:00
rwsem.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
rwsem.h
s390-cpumcf-kernel.h perf report: Display arch specific diagnostic counter sets, starting with s390 2019-01-21 17:00:48 -03:00
s390-cpumsf-kernel.h
s390-cpumsf.c perf env: Remove needless cpumap.h header 2019-09-20 09:19:21 -03:00
s390-cpumsf.h
s390-sample-raw.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
sample-raw.c perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
sample-raw.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
session.c perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
session.h perf evlist: Adopt __set_tracepoint_handlers method from perf_session 2019-10-07 12:22:17 -03:00
setns.c perf namespaces: Move the conditional setns() prototype to namespaces.h 2019-07-09 10:13:26 -03:00
setup.py perf tools: Add helpers to use capabilities if present 2019-08-14 10:48:39 -03:00
smt.c perf tools: Apply new CPU topology sysfs attributes 2019-06-10 16:20:11 -03:00
smt.h
sort.c libperf: Add perf_evlist__first()/last() functions 2019-09-25 09:51:48 -03:00
sort.h perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -03:00
spark.c perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -03:00
spark.h perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -03:00
srccode.c libperf: Move 'page_size' global variable to libperf 2019-09-25 09:51:48 -03:00
srccode.h perf srccode: Move struct definition from map.h to srccode.h 2019-02-06 10:00:38 -03:00
srcline.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
srcline.h perf callchain: Use cached rbtrees 2019-01-25 15:12:09 +01:00
stat-display.c perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
stat-shadow.c perf stat: Fix free memory access / memory leaks in metrics 2019-09-25 16:26:40 -03:00
stat.c perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
stat.h perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
strbuf.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
strbuf.h
strfilter.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strfilter.h
string.c tools lib: Move argv_{split,free} from tools/perf/util/ 2019-07-01 22:50:40 -03:00
string2.h perf string: Export asprintf__tp_filter_pids() 2019-10-15 13:03:57 -03:00
strlist.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strlist.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
svghelper.c perf env: Remove needless cpumap.h header 2019-09-20 09:19:21 -03:00
svghelper.h perf timechart: Refactor svg_build_topology_map() 2019-08-29 17:38:31 -03:00
symbol_conf.h perf report: Sort by sampled cycles percent per block for stdio 2019-11-07 10:14:48 -03:00
symbol_fprintf.c perf symbols: Move symsrc prototypes to a separate header 2019-08-31 22:24:05 -03:00
symbol-elf.c perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
symbol-minimal.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
symbol.c perf block: Cleanup and refactor block info functions 2019-11-07 09:09:18 -03:00
symbol.h perf block: Cleanup and refactor block info functions 2019-11-07 09:09:18 -03:00
symsrc.h perf symbols: Move symsrc prototypes to a separate header 2019-08-31 22:24:05 -03:00
synthetic-events.c perf maps: Add for_each_entry()/_safe() iterators 2019-11-06 15:49:25 -03:00
synthetic-events.h perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
syscalltbl.c perf trace: Preallocate the syscall table 2019-07-29 18:34:42 -03:00
syscalltbl.h perf trace: Preallocate the syscall table 2019-07-29 18:34:42 -03:00
target.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
target.h
term.c
term.h
thread_map.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
thread_map.h libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
thread-stack.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
thread-stack.h perf/core improvements and fixes: 2019-06-17 20:48:14 +02:00
thread.c perf maps: Add for_each_entry()/_safe() iterators 2019-11-06 15:49:25 -03:00
thread.h libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix 2019-08-26 19:39:11 -03:00
time-utils.c perf script: Fix --reltime with --time 2019-10-15 08:36:22 -03:00
time-utils.h perf script: Fix --reltime with --time 2019-10-15 08:36:22 -03:00
tool.h perf tool: Rename perf_tool::bpf_event to bpf 2019-08-26 19:39:11 -03:00
top.c libperf: Add perf_evlist__first()/last() functions 2019-09-25 09:51:48 -03:00
top.h perf auxtrace: Uninline functions that touch perf_session 2019-08-31 22:24:10 -03:00
trace-event-info.c libperf: Move 'page_size' global variable to libperf 2019-09-25 09:51:48 -03:00
trace-event-parse.c perf tools: Remove unused trace_find_next_event() 2019-10-18 12:07:46 -03:00
trace-event-read.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
trace-event-scripting.c perf tools: Remove perf.h from source files not needing it 2019-08-29 17:38:32 -03:00
trace-event.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
trace-event.h perf tools: Remove unused trace_find_next_event() 2019-10-18 12:07:46 -03:00
trigger.h perf tools: Remove debug.h from header files not needing it 2019-08-29 17:38:32 -03:00
tsc.c
tsc.h perf tools: Move event synthesizing routines to separate header 2019-09-20 09:19:22 -03:00
units.c
units.h
unwind-libdw.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
unwind-libdw.h
unwind-libunwind-local.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
unwind-libunwind.c perf dsos: Move the dsos struct and its methods to separate source files 2019-08-31 22:24:10 -03:00
unwind.h perf unwind: Fix libunwind when tid != pid 2019-08-16 12:25:57 -03:00
usage.c perf tools: Remove debug.h from places where it is not needed 2019-09-20 09:19:20 -03:00
util.c perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
util.h perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
values.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
values.h
vdso.c perf map_groups: Introduce for_each_entry() and for_each_entry_safe() iterators 2019-11-06 15:49:39 -03:00
vdso.h
xyarray.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
zlib.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
zstd.c perf session: Fix loading of compressed data split across adjacent records 2019-07-23 09:04:03 -03:00