projects/linux·commit d8b91dde

Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

d8b91dde · Linus Torvalds <[email protected]> · 2018-01-30 11:15:14 -08:00

Pull perf updates from Ingo Molnar:
 "Kernel side changes:

   - Clean up the x86 instruction decoder (Masami Hiramatsu)

   - Add new uprobes optimization for PUSH instructions on x86 (Yonghong
     Song)

   - Add MSR_IA32_THERM_STATUS to the MSR events (Stephane Eranian)

   - Fix misc bugs, update documentation, plus various cleanups (Jiri
     Olsa)

  There's a large number of tooling side improvements:

   - Intel-PT/BTS improvements (Adrian Hunter)

   - Numerous 'perf trace' improvements (Arnaldo Carvalho de Melo)

   - Introduce an errno code to string facility (Hendrik Brueckner)

   - Various build system improvements (Jiri Olsa)

   - Add support for CoreSight trace decoding by making the perf tools
     use the external openCSD (Mathieu Poirier, Tor Jeremiassen)

   - Add ARM Statistical Profiling Extensions (SPE) support (Kim
     Phillips)

   - libtraceevent updates (Steven Rostedt)

   - Intel vendor event JSON updates (Andi Kleen)

   - Introduce 'perf report --mmaps' and 'perf report --tasks' to show
     info present in 'perf.data' (Jiri Olsa, Arnaldo Carvalho de Melo)

   - Add infrastructure to record first and last sample time to the
     perf.data file header, so that when processing all samples in a
     'perf record' session, such as when doing build-id processing, or
     when specifically requesting that that info be recorded, use that
     in 'perf report --time', that also got support for percent slices
     in addition to absolute ones.

     I.e. now it is possible to ask for the samples in the 10%-20% time
     slice of a perf.data file (Jin Yao)

   - Allow system wide 'perf stat --per-thread', sorting the result (Jin
     Yao)

     E.g.:

      [root@jouet ~]# perf stat --per-thread --metrics IPC
      ^C
       Performance counter stats for 'system wide':

                  make-22229  23,012,094,032  inst_retired.any   #  0.8 IPC
                   cc1-22419     692,027,497  inst_retired.any   #  0.8 IPC
                   gcc-22418     328,231,855  inst_retired.any   #  0.9 IPC
                   cc1-22509     220,853,647  inst_retired.any   #  0.8 IPC
                   gcc-22486     199,874,810  inst_retired.any   #  1.0 IPC
                    as-22466     177,896,365  inst_retired.any   #  0.9 IPC
                   cc1-22465     150,732,374  inst_retired.any   #  0.8 IPC
                   gcc-22508     112,555,593  inst_retired.any   #  0.9 IPC
                   cc1-22487     108,964,079  inst_retired.any   #  0.7 IPC
       qemu-system-x86-2697       21,330,550  inst_retired.any   #  0.3 IPC
       systemd-journal-551        20,642,951  inst_retired.any   #  0.4 IPC
       docker-containe-17651       9,552,892  inst_retired.any   #  0.5 IPC
       dockerd-current-9809        7,528,586  inst_retired.any   #  0.5 IPC
                  make-22153  12,504,194,380  inst_retired.any   #  0.8 IPC
               python2-22429  12,081,290,954  inst_retired.any   #  0.8 IPC
      <SNIP>
               python2-22429  15,026,328,103  cpu_clk_unhalted.thread
                   cc1-22419     826,660,193  cpu_clk_unhalted.thread
                   gcc-22418     365,321,295  cpu_clk_unhalted.thread
                   cc1-22509     279,169,362  cpu_clk_unhalted.thread
                   gcc-22486     210,156,950  cpu_clk_unhalted.thread
      <SNIP>

           5.638075538 seconds time elapsed

     [root@jouet ~]#

   - Improve shell auto-completion of perf events (Jin Yao)

   - 'perf probe' improvements (Masami Hiramatsu)

   - Improve PMU infrastructure to support amp64's ThunderX2
     implementation defined core events (Ganapatrao Kulkarni)

   - Various annotation related improvements and fixes (Thomas Richter)

   - Clarify usage of 'overwrite' and 'backward' in the evlist/mmap
     code, removing the 'overwrite' parameter from several functions as
     it was always used it as 'false' (Wang Nan)

   - Fix/improve 'perf record' reverse recording support (Wang Nan)

   - Improve command line options documentation (Sihyeon Jang)

   - Optimize sample parsing for ordering events, where we don't need to
     parse all the PERF_SAMPLE_ bits, just the ones leading to the
     timestamp needed to reorder events (Jiri Olsa)

   - Generalize the annotation code to support other source information
     besides objdump/DWARF obtained ones, starting with python scripts,
     that will is slated to be merged soon (Jiri Olsa)

   - ... and a lot more that I failed to list, see the shortlog and
     changelog for details"

* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (262 commits)
  perf trace beauty flock: Move to separate object file
  perf evlist: Remove fcntl.h from evlist.h
  perf trace beauty futex: Beautify FUTEX_BITSET_MATCH_ANY
  perf trace: Do not print from time delta for interrupted syscall lines
  perf trace: Add --print-sample
  perf bpf: Remove misplaced __maybe_unused attribute
  MAINTAINERS: Adding entry for CoreSight trace decoding
  perf tools: Add mechanic to synthesise CoreSight trace packets
  perf tools: Add full support for CoreSight trace decoding
  pert tools: Add queue management functionality
  perf tools: Add functionality to communicate with the openCSD decoder
  perf tools: Add support for decoding CoreSight trace data
  perf tools: Add decoder mechanic to support dumping trace data
  perf tools: Add processing of coresight metadata
  perf tools: Add initial entry point for decoder CoreSight traces
  perf tools: Integrating the CoreSight decoding library
  perf vendor events intel: Update IvyTown files to V20
  perf vendor events intel: Update IvyBridge files to V20
  perf vendor events intel: Update BroadwellDE events to V7
  perf vendor events intel: Update SkylakeX events to V1.06
  ...
Commit
d8b91dde38f4c43bd0bbbf17a90f735b16aaff2c
Parents
5e7481a2 · e4c1091c

Merge commit. Changes below are compared with the first parent: 5e7481a2.

Changes

270 files changed · +18523 −15234

FileStatusAddDelContent
Documentation/process/kernel-enforcement-statement.rstmodified+1−0View file
MAINTAINERSmodified+2−1View file
arch/x86/events/msr.cmodified+43−27View file
arch/x86/include/asm/uprobes.hmodified+4−0View file
arch/x86/kernel/uprobes.cmodified+103−4View file
arch/x86/tools/Makefilemodified+6−6View file
arch/x86/tools/test_get_len.c → arch/x86/tools/insn_decoder_test.crenamed+25−18View file
arch/x86/tools/distill.awk → arch/x86/tools/objdump_reformat.awkrenamed+2−2View file
include/uapi/linux/perf_event.hmodified+7−3View file
kernel/events/callchain.cmodified+0−15View file
kernel/events/core.cmodified+39−15View file
kernel/events/internal.hmodified+0−4View file
tools/arch/alpha/include/uapi/asm/errno.hadded+128−0View file
tools/arch/mips/include/asm/errno.hadded+17−0View file
tools/arch/mips/include/uapi/asm/errno.hadded+130−0View file
tools/arch/parisc/include/uapi/asm/errno.hadded+128−0View file
tools/arch/powerpc/include/uapi/asm/errno.hadded+10−0View file
tools/arch/s390/include/uapi/asm/unistd.hadded+412−0View file
tools/arch/sparc/include/uapi/asm/errno.hadded+118−0View file
tools/arch/x86/include/asm/cpufeatures.hmodified+3−1View file
tools/arch/x86/include/asm/disabled-features.hmodified+7−1View file
tools/arch/x86/include/uapi/asm/errno.hadded+1−0View file
tools/build/Makefile.featuremodified+3−1View file
tools/build/feature/Makefilemodified+10−1View file
tools/build/feature/test-all.cmodified+10−0View file
tools/build/feature/test-libopencsd.cadded+8−0View file
tools/build/feature/test-pthread-barrier.cadded+12−0View file
tools/include/uapi/asm-generic/errno-base.hadded+40−0View file
tools/include/uapi/asm-generic/errno.hadded+123−0View file
tools/include/uapi/linux/perf_event.hmodified+7−3View file
tools/lib/traceevent/event-parse.cmodified+51−11View file
tools/lib/traceevent/event-plugin.cmodified+9−15View file
tools/lib/traceevent/kbuffer-parse.cmodified+2−2View file
tools/lib/traceevent/parse-filter.cmodified+14−8View file
tools/perf/Buildmodified+2−2View file
tools/perf/Documentation/perf-buildid-cache.txtmodified+3−0View file
tools/perf/Documentation/perf-evlist.txtmodified+4−0View file
tools/perf/Documentation/perf-inject.txtmodified+4−0View file
tools/perf/Documentation/perf-lock.txtmodified+4−0View file
tools/perf/Documentation/perf-probe.txtmodified+17−1View file
tools/perf/Documentation/perf-record.txtmodified+3−0View file
tools/perf/Documentation/perf-report.txtmodified+36−1View file
tools/perf/Documentation/perf-sched.txtmodified+4−0View file
tools/perf/Documentation/perf-script.txtmodified+46−1View file
tools/perf/Documentation/perf-timechart.txtmodified+3−1View file
tools/perf/Documentation/perf-top.txtmodified+6−0View file
tools/perf/Documentation/perf-trace.txtmodified+14−6View file
tools/perf/Documentation/perf.data-file-format.txtmodified+27−0View file
tools/perf/Documentation/tips.txtmodified+2−0View file
tools/perf/Makefile.configmodified+55−10View file
tools/perf/Makefile.perfmodified+14−3View file
tools/perf/arch/arm/util/auxtrace.cmodified+71−6View file
tools/perf/arch/arm/util/pmu.cmodified+6−0View file
tools/perf/arch/arm64/util/Buildmodified+4−1View file
tools/perf/arch/arm64/util/arm-spe.cadded+225−0View file
tools/perf/arch/arm64/util/header.cadded+65−0View file
tools/perf/arch/arm64/util/sym-handling.cadded+22−0View file
tools/perf/arch/common.cmodified+3−41View file
tools/perf/arch/common.hmodified+0−1View file
tools/perf/arch/powerpc/util/header.cmodified+1−1View file
tools/perf/arch/powerpc/util/sym-handling.cmodified+8−0View file
tools/perf/arch/s390/Makefilemodified+21−0View file
tools/perf/arch/s390/annotate/instructions.cmodified+2−1View file
tools/perf/arch/s390/entry/syscalls/mksyscalltbladded+36−0View file
tools/perf/arch/x86/tests/perf-time-to-tsc.cmodified+1−1View file
tools/perf/arch/x86/util/header.cmodified+2−2View file
tools/perf/arch/x86/util/unwind-libunwind.cmodified+1−1View file
tools/perf/bench/futex-hash.cmodified+12−8View file
tools/perf/bench/futex-lock-pi.cmodified+14−9View file
tools/perf/bench/futex-requeue.cmodified+13−9View file
tools/perf/bench/futex-wake-parallel.cmodified+35−11View file
tools/perf/bench/futex-wake.cmodified+11−7View file
tools/perf/builtin-buildid-cache.cmodified+2−2View file
tools/perf/builtin-c2c.cmodified+7−9View file
tools/perf/builtin-help.cmodified+1−1View file
tools/perf/builtin-inject.cmodified+1−2View file
tools/perf/builtin-kvm.cmodified+8−5View file
tools/perf/builtin-record.cmodified+49−14View file
tools/perf/builtin-report.cmodified+267−16View file
tools/perf/builtin-script.cmodified+229−37View file
tools/perf/builtin-stat.cmodified+147−83View file
tools/perf/builtin-top.cmodified+7−3View file
tools/perf/builtin-trace.cmodified+67−55View file
tools/perf/check-headers.shmodified+10−1View file
tools/perf/perf-completion.shmodified+43−4View file
tools/perf/perf.cmodified+2−2View file
tools/perf/pmu-events/arch/arm64/cavium/thunderx2-imp-def.jsonadded+62−0View file
tools/perf/pmu-events/arch/arm64/mapfile.csvadded+15−0View file
tools/perf/pmu-events/arch/powerpc/mapfile.csvmodified+2−10View file
tools/perf/pmu-events/arch/powerpc/power9/cache.jsonmodified+0−5View file
tools/perf/pmu-events/arch/powerpc/power9/frontend.jsonmodified+1−6View file
tools/perf/pmu-events/arch/powerpc/power9/marked.jsonmodified+6−21View file
tools/perf/pmu-events/arch/powerpc/power9/other.jsonmodified+73−203View file
tools/perf/pmu-events/arch/powerpc/power9/pipeline.jsonmodified+7−7View file
tools/perf/pmu-events/arch/powerpc/power9/pmc.jsonmodified+1−1View file
tools/perf/pmu-events/arch/powerpc/power9/translation.jsonmodified+0−5View file
tools/perf/pmu-events/arch/x86/broadwell/cache.jsonmodified+378−177View file
tools/perf/pmu-events/arch/x86/broadwell/floating-point.jsonmodified+51−57View file
tools/perf/pmu-events/arch/x86/broadwell/frontend.jsonmodified+69−69View file
tools/perf/pmu-events/arch/x86/broadwell/memory.jsonmodified+205−5View file
tools/perf/pmu-events/arch/x86/broadwell/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/broadwell/pipeline.jsonmodified+613−603View file
tools/perf/pmu-events/arch/x86/broadwell/virtual-memory.jsonmodified+75−75View file
tools/perf/pmu-events/arch/x86/broadwellde/cache.jsonmodified+212−177View file
tools/perf/pmu-events/arch/x86/broadwellde/floating-point.jsonmodified+51−57View file
tools/perf/pmu-events/arch/x86/broadwellde/frontend.jsonmodified+69−69View file
tools/perf/pmu-events/arch/x86/broadwellde/memory.jsonmodified+4−5View file
tools/perf/pmu-events/arch/x86/broadwellde/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/broadwellde/pipeline.jsonmodified+612−602View file
tools/perf/pmu-events/arch/x86/broadwellde/virtual-memory.jsonmodified+75−75View file
tools/perf/pmu-events/arch/x86/broadwellx/cache.jsonmodified+203−180View file
tools/perf/pmu-events/arch/x86/broadwellx/floating-point.jsonmodified+51−57View file
tools/perf/pmu-events/arch/x86/broadwellx/frontend.jsonmodified+69−69View file
tools/perf/pmu-events/arch/x86/broadwellx/memory.jsonmodified+35−5View file
tools/perf/pmu-events/arch/x86/broadwellx/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/broadwellx/pipeline.jsonmodified+612−602View file
tools/perf/pmu-events/arch/x86/broadwellx/virtual-memory.jsonmodified+75−75View file
tools/perf/pmu-events/arch/x86/goldmont/cache.jsonmodified+1081−163View file
tools/perf/pmu-events/arch/x86/goldmont/memory.jsonmodified+270−10View file
tools/perf/pmu-events/arch/x86/goldmont/other.jsonmodified+42−12View file
tools/perf/pmu-events/arch/x86/goldmont/pipeline.jsonmodified+264−242View file
tools/perf/pmu-events/arch/x86/goldmont/virtual-memory.jsonmodified+30−30View file
tools/perf/pmu-events/arch/x86/haswell/cache.jsonmodified+194−171View file
tools/perf/pmu-events/arch/x86/haswell/floating-point.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/haswell/frontend.jsonmodified+66−66View file
tools/perf/pmu-events/arch/x86/haswell/memory.jsonmodified+21−0View file
tools/perf/pmu-events/arch/x86/haswell/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/haswell/pipeline.jsonmodified+570−561View file
tools/perf/pmu-events/arch/x86/haswell/virtual-memory.jsonmodified+106−106View file
tools/perf/pmu-events/arch/x86/haswellx/cache.jsonmodified+200−177View file
tools/perf/pmu-events/arch/x86/haswellx/floating-point.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/haswellx/frontend.jsonmodified+66−66View file
tools/perf/pmu-events/arch/x86/haswellx/memory.jsonmodified+28−0View file
tools/perf/pmu-events/arch/x86/haswellx/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/haswellx/pipeline.jsonmodified+571−562View file
tools/perf/pmu-events/arch/x86/haswellx/virtual-memory.jsonmodified+106−106View file
tools/perf/pmu-events/arch/x86/ivybridge/cache.jsonmodified+111−132View file
tools/perf/pmu-events/arch/x86/ivybridge/frontend.jsonmodified+61−61View file
tools/perf/pmu-events/arch/x86/ivybridge/memory.jsonmodified+12−12View file
tools/perf/pmu-events/arch/x86/ivybridge/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/ivybridge/pipeline.jsonmodified+412−410View file
tools/perf/pmu-events/arch/x86/ivybridge/virtual-memory.jsonmodified+30−30View file
tools/perf/pmu-events/arch/x86/ivytown/cache.jsonmodified+112−124View file
tools/perf/pmu-events/arch/x86/ivytown/frontend.jsonmodified+61−61View file
tools/perf/pmu-events/arch/x86/ivytown/memory.jsonmodified+12−12View file
tools/perf/pmu-events/arch/x86/ivytown/other.jsonmodified+10−10View file
tools/perf/pmu-events/arch/x86/ivytown/pipeline.jsonmodified+412−410View file
tools/perf/pmu-events/arch/x86/ivytown/virtual-memory.jsonmodified+30−30View file
tools/perf/pmu-events/arch/x86/mapfile.csvmodified+1−4View file
tools/perf/pmu-events/arch/x86/silvermont/cache.jsonmodified+2−1View file
tools/perf/pmu-events/arch/x86/skylake/cache.jsonmodified+515−3875View file
tools/perf/pmu-events/arch/x86/skylake/floating-point.jsonmodified+2−3View file
tools/perf/pmu-events/arch/x86/skylake/frontend.jsonmodified+121−111View file
tools/perf/pmu-events/arch/x86/skylake/memory.jsonmodified+212−1906View file
tools/perf/pmu-events/arch/x86/skylake/other.jsonmodified+38−2View file
tools/perf/pmu-events/arch/x86/skylake/pipeline.jsonmodified+492−481View file
tools/perf/pmu-events/arch/x86/skylake/virtual-memory.jsonmodified+137−125View file
tools/perf/pmu-events/arch/x86/skylakex/cache.jsonmodified+167−90View file
tools/perf/pmu-events/arch/x86/skylakex/floating-point.jsonmodified+1−2View file
tools/perf/pmu-events/arch/x86/skylakex/frontend.jsonmodified+24−24View file
tools/perf/pmu-events/arch/x86/skylakex/memory.jsonmodified+154−77View file
tools/perf/pmu-events/arch/x86/skylakex/other.jsonmodified+93−1View file
tools/perf/pmu-events/arch/x86/skylakex/pipeline.jsonmodified+22−22View file
tools/perf/pmu-events/arch/x86/skylakex/virtual-memory.jsonmodified+21−21View file
tools/perf/pmu-events/jevents.cmodified+38−1View file
tools/perf/scripts/python/bin/mem-phys-addr-recordadded+19−0View file
tools/perf/scripts/python/bin/mem-phys-addr-reportadded+3−0View file
tools/perf/scripts/python/mem-phys-addr.pyadded+95−0View file
tools/perf/tests/attr.cmodified+6−0View file
tools/perf/tests/backward-ring-buffer.cmodified+3−3View file
tools/perf/tests/bp_signal.cmodified+1−1View file
tools/perf/tests/bpf-script-example.cmodified+2−2View file
tools/perf/tests/bpf.cmodified+32−36View file
tools/perf/tests/builtin-test.cmodified+5−5View file
tools/perf/tests/code-reading.cmodified+1−1View file
tools/perf/tests/dwarf-unwind.cmodified+1−0View file
tools/perf/tests/keep-tracking.cmodified+1−1View file
tools/perf/tests/mmap-basic.cmodified+1−1View file
tools/perf/tests/openat-syscall-tp-fields.cmodified+4−1View file
tools/perf/tests/parse-events.cmodified+0−1View file
tools/perf/tests/perf-record.cmodified+1−1View file
tools/perf/tests/sample-parsing.cmodified+1−1View file
tools/perf/tests/shell/trace+probe_vfs_getname.shmodified+3−4View file
tools/perf/tests/sw-clock.cmodified+1−1View file
tools/perf/tests/switch-tracking.cmodified+1−1View file
tools/perf/tests/task-exit.cmodified+1−1View file
tools/perf/tests/thread-map.cmodified+1−1View file
tools/perf/trace/beauty/Buildmodified+1−0View file
tools/perf/trace/beauty/arch_errno_names.cadded+1−0View file
tools/perf/trace/beauty/arch_errno_names.shadded+100−0View file
tools/perf/trace/beauty/beauty.hmodified+5−0View file
tools/perf/trace/beauty/flock.cmodified+5−5View file
tools/perf/trace/beauty/futex_val3.cadded+18−0View file
tools/perf/ui/browsers/annotate.cmodified+197−202View file
tools/perf/ui/gtk/annotate.cmodified+13−12View file
tools/perf/util/Buildmodified+9−1View file
tools/perf/util/annotate.cmodified+340−312View file
tools/perf/util/annotate.hmodified+42−34View file
tools/perf/util/arm-spe-pkt-decoder.cadded+462−0View file
tools/perf/util/arm-spe-pkt-decoder.hadded+43−0View file
tools/perf/util/arm-spe.cadded+231−0View file
tools/perf/util/arm-spe.hadded+31−0View file
tools/perf/util/auxtrace.cmodified+5−3View file
tools/perf/util/auxtrace.hmodified+1−0View file
tools/perf/util/bpf-loader.cmodified+2−2View file
tools/perf/util/callchain.cmodified+10−0View file
tools/perf/util/callchain.hmodified+2−0View file
tools/perf/util/cgroup.cmodified+3−0View file
tools/perf/util/cs-etm-decoder/Buildadded+1−0View file
tools/perf/util/cs-etm-decoder/cs-etm-decoder.cadded+513−0View file
tools/perf/util/cs-etm-decoder/cs-etm-decoder.hadded+105−0View file
tools/perf/util/cs-etm.cadded+1023−0View file
tools/perf/util/cs-etm.hmodified+18−0View file
tools/perf/util/data.cmodified+0−10View file
tools/perf/util/dso.cmodified+1−1View file
tools/perf/util/env.cmodified+47−0View file
tools/perf/util/env.hmodified+2−0View file
tools/perf/util/event.cmodified+8−0View file
tools/perf/util/event.hmodified+2−2View file
tools/perf/util/evlist.cmodified+43−27View file
tools/perf/util/evlist.hmodified+9−6View file
tools/perf/util/evsel.cmodified+163−64View file
tools/perf/util/evsel.hmodified+7−5View file
tools/perf/util/generate-cmdlist.shmodified+1−1View file
tools/perf/util/header.cmodified+128−2View file
tools/perf/util/header.hmodified+8−1View file
tools/perf/util/intel-bts.cmodified+1−5View file
tools/perf/util/intel-pt-decoder/Buildmodified+15−9View file
tools/perf/util/intel-pt.cmodified+3−8View file
tools/perf/util/machine.cmodified+2−2View file
tools/perf/util/map.cmodified+1−1View file
tools/perf/util/metricgroup.cmodified+6−4View file
tools/perf/util/mmap.cmodified+25−48View file
tools/perf/util/mmap.hmodified+2−2View file
tools/perf/util/ordered-events.cmodified+1−2View file
tools/perf/util/ordered-events.hmodified+1−1View file
tools/perf/util/parse-events.cmodified+3−0View file
tools/perf/util/path.cmodified+14−0View file
tools/perf/util/path.hmodified+3−0View file
tools/perf/util/pmu.cmodified+71−16View file
tools/perf/util/pmu.hmodified+1−1View file
tools/perf/util/probe-event.cmodified+61−24View file
tools/perf/util/python-ext-sourcesmodified+1−0View file
tools/perf/util/python.cmodified+1−1View file
tools/perf/util/rblist.cmodified+12−7View file
tools/perf/util/rblist.hmodified+1−0View file
tools/perf/util/scripting-engines/trace-event-python.cmodified+2−1View file
tools/perf/util/session.cmodified+26−28View file
tools/perf/util/session.hmodified+1−1View file
tools/perf/util/sort.cmodified+12−8View file
tools/perf/util/srcline.cmodified+5−4View file
tools/perf/util/srcline.hmodified+3−2View file
tools/perf/util/stat-shadow.cmodified+258−168View file
tools/perf/util/stat.cmodified+11−4View file
tools/perf/util/stat.hmodified+60−3View file
tools/perf/util/string.cmodified+46−0View file
tools/perf/util/string2.hmodified+2−0View file
tools/perf/util/symbol.cmodified+5−0View file
tools/perf/util/symbol.hmodified+1−0View file
tools/perf/util/syscalltbl.cmodified+4−0View file
tools/perf/util/target.hmodified+7−0View file
tools/perf/util/thread_map.cmodified+20−7View file
tools/perf/util/thread_map.hmodified+2−1View file
tools/perf/util/time-utils.cmodified+289−12View file
tools/perf/util/time-utils.hmodified+8−0View file
tools/perf/util/tool.hmodified+1−0View file
tools/perf/util/unwind-libunwind-local.cmodified+3−6View file
tools/perf/util/unwind-libunwind.cmodified+2−2View file
tools/perf/util/util.cmodified+1−1View file
tools/perf/util/util.hmodified+10−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/process/kernel-enforcement-statement.rst

View file
diff --git a/Documentation/process/kernel-enforcement-statement.rst b/Documentation/process/kernel-enforcement-statement.rst
index b317067..bfa6a78 100644
--- a/Documentation/process/kernel-enforcement-statement.rst
+++ b/Documentation/process/kernel-enforcement-statement.rst
@@ -118,6 +118,7 @@ we might work for today, have in the past, or will in the future.
- Mike Marshall
- Chris Mason
- Paul E. McKenney
+ - Arnaldo Carvalho de Melo
- David S. Miller
- Ingo Molnar
- Kuninori Morimoto

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 859a28d..217a875 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1327,7 +1327,8 @@ F: tools/perf/arch/arm/util/pmu.c
F: tools/perf/arch/arm/util/auxtrace.c
F: tools/perf/arch/arm/util/cs-etm.c
F: tools/perf/arch/arm/util/cs-etm.h
-F: tools/perf/util/cs-etm.h
+F: tools/perf/util/cs-etm.*
+F: tools/perf/util/cs-etm-decoder/*
ARM/CORGI MACHINE SUPPORT
M: Richard Purdie <[email protected]>

arch/x86/events/msr.c

View file
diff --git a/arch/x86/events/msr.c b/arch/x86/events/msr.c
index 14efaa0..18e2628 100644
--- a/arch/x86/events/msr.c
+++ b/arch/x86/events/msr.c
@@ -10,7 +10,9 @@ enum perf_msr_id {
PERF_MSR_SMI = 4,
PERF_MSR_PTSC = 5,
PERF_MSR_IRPERF = 6,
-
+ PERF_MSR_THERM = 7,
+ PERF_MSR_THERM_SNAP = 8,
+ PERF_MSR_THERM_UNIT = 9,
PERF_MSR_EVENT_MAX,
};
@@ -29,6 +31,11 @@ static bool test_irperf(int idx)
return boot_cpu_has(X86_FEATURE_IRPERF);
}
+static bool test_therm_status(int idx)
+{
+ return boot_cpu_has(X86_FEATURE_DTHERM);
+}
+
static bool test_intel(int idx)
{
if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
@@ -95,22 +102,28 @@ struct perf_msr {
bool (*test)(int idx);
};
-PMU_EVENT_ATTR_STRING(tsc, evattr_tsc, "event=0x00");
-PMU_EVENT_ATTR_STRING(aperf, evattr_aperf, "event=0x01");
-PMU_EVENT_ATTR_STRING(mperf, evattr_mperf, "event=0x02");
-PMU_EVENT_ATTR_STRING(pperf, evattr_pperf, "event=0x03");
-PMU_EVENT_ATTR_STRING(smi, evattr_smi, "event=0x04");
-PMU_EVENT_ATTR_STRING(ptsc, evattr_ptsc, "event=0x05");
-PMU_EVENT_ATTR_STRING(irperf, evattr_irperf, "event=0x06");
+PMU_EVENT_ATTR_STRING(tsc, evattr_tsc, "event=0x00" );
+PMU_EVENT_ATTR_STRING(aperf, evattr_aperf, "event=0x01" );
+PMU_EVENT_ATTR_STRING(mperf, evattr_mperf, "event=0x02" );
+PMU_EVENT_ATTR_STRING(pperf, evattr_pperf, "event=0x03" );
+PMU_EVENT_ATTR_STRING(smi, evattr_smi, "event=0x04" );
+PMU_EVENT_ATTR_STRING(ptsc, evattr_ptsc, "event=0x05" );
+PMU_EVENT_ATTR_STRING(irperf, evattr_irperf, "event=0x06" );
+PMU_EVENT_ATTR_STRING(cpu_thermal_margin, evattr_therm, "event=0x07" );
+PMU_EVENT_ATTR_STRING(cpu_thermal_margin.snapshot, evattr_therm_snap, "1" );
+PMU_EVENT_ATTR_STRING(cpu_thermal_margin.unit, evattr_therm_unit, "C" );
static struct perf_msr msr[] = {
- [PERF_MSR_TSC] = { 0, &evattr_tsc, NULL, },
- [PERF_MSR_APERF] = { MSR_IA32_APERF, &evattr_aperf, test_aperfmperf, },
- [PERF_MSR_MPERF] = { MSR_IA32_MPERF, &evattr_mperf, test_aperfmperf, },
- [PERF_MSR_PPERF] = { MSR_PPERF, &evattr_pperf, test_intel, },
- [PERF_MSR_SMI] = { MSR_SMI_COUNT, &evattr_smi, test_intel, },
- [PERF_MSR_PTSC] = { MSR_F15H_PTSC, &evattr_ptsc, test_ptsc, },
- [PERF_MSR_IRPERF] = { MSR_F17H_IRPERF, &evattr_irperf, test_irperf, },
+ [PERF_MSR_TSC] = { 0, &evattr_tsc, NULL, },
+ [PERF_MSR_APERF] = { MSR_IA32_APERF, &evattr_aperf, test_aperfmperf, },
+ [PERF_MSR_MPERF] = { MSR_IA32_MPERF, &evattr_mperf, test_aperfmperf, },
+ [PERF_MSR_PPERF] = { MSR_PPERF, &evattr_pperf, test_intel, },
+ [PERF_MSR_SMI] = { MSR_SMI_COUNT, &evattr_smi, test_intel, },
+ [PERF_MSR_PTSC] = { MSR_F15H_PTSC, &evattr_ptsc, test_ptsc, },
+ [PERF_MSR_IRPERF] = { MSR_F17H_IRPERF, &evattr_irperf, test_irperf, },
+ [PERF_MSR_THERM] = { MSR_IA32_THERM_STATUS, &evattr_therm, test_therm_status, },
+ [PERF_MSR_THERM_SNAP] = { MSR_IA32_THERM_STATUS, &evattr_therm_snap, test_therm_status, },
+ [PERF_MSR_THERM_UNIT] = { MSR_IA32_THERM_STATUS, &evattr_therm_unit, test_therm_status, },
};
static struct attribute *events_attrs[PERF_MSR_EVENT_MAX + 1] = {
@@ -161,9 +174,9 @@ static int msr_event_init(struct perf_event *event)
if (!msr[cfg].attr)
return -EINVAL;
- event->hw.idx = -1;
- event->hw.event_base = msr[cfg].msr;
- event->hw.config = cfg;
+ event->hw.idx = -1;
+ event->hw.event_base = msr[cfg].msr;
+ event->hw.config = cfg;
return 0;
}
@@ -184,7 +197,7 @@ static void msr_event_update(struct perf_event *event)
u64 prev, now;
s64 delta;
- /* Careful, an NMI might modify the previous event value. */
+ /* Careful, an NMI might modify the previous event value: */
again:
prev = local64_read(&event->hw.prev_count);
now = msr_read_counter(event);
@@ -193,17 +206,22 @@ again:
goto again;
delta = now - prev;
- if (unlikely(event->hw.event_base == MSR_SMI_COUNT))
+ if (unlikely(event->hw.event_base == MSR_SMI_COUNT)) {
delta = sign_extend64(delta, 31);
-
- local64_add(delta, &event->count);
+ local64_add(delta, &event->count);
+ } else if (unlikely(event->hw.event_base == MSR_IA32_THERM_STATUS)) {
+ /* If valid, extract digital readout, otherwise set to -1: */
+ now = now & (1ULL << 31) ? (now >> 16) & 0x3f : -1;
+ local64_set(&event->count, now);
+ } else {
+ local64_add(delta, &event->count);
+ }
}
static void msr_event_start(struct perf_event *event, int flags)
{
- u64 now;
+ u64 now = msr_read_counter(event);
- now = msr_read_counter(event);
local64_set(&event->hw.prev_count, now);
}
@@ -250,9 +268,7 @@ static int __init msr_init(void)
for (i = PERF_MSR_TSC + 1; i < PERF_MSR_EVENT_MAX; i++) {
u64 val;
- /*
- * Virt sucks arse; you cannot tell if a R/O MSR is present :/
- */
+ /* Virt sucks; you cannot tell if a R/O MSR is present :/ */
if (!msr[i].test(i) || rdmsrl_safe(msr[i].msr, &val))
msr[i].attr = NULL;
}

arch/x86/include/asm/uprobes.h

View file
diff --git a/arch/x86/include/asm/uprobes.h b/arch/x86/include/asm/uprobes.h
index 74f4c2f..d8bfa98 100644
--- a/arch/x86/include/asm/uprobes.h
+++ b/arch/x86/include/asm/uprobes.h
@@ -53,6 +53,10 @@ struct arch_uprobe {
u8 fixups;
u8 ilen;
} defparam;
+ struct {
+ u8 reg_offset; /* to the start of pt_regs */
+ u8 ilen;
+ } push;
};
};

arch/x86/kernel/uprobes.c

View file
diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
index a3755d2..85c7ef2 100644
--- a/arch/x86/kernel/uprobes.c
+++ b/arch/x86/kernel/uprobes.c
@@ -528,11 +528,11 @@ static int default_pre_xol_op(struct arch_uprobe *auprobe, struct pt_regs *regs)
return 0;
}
-static int push_ret_address(struct pt_regs *regs, unsigned long ip)
+static int emulate_push_stack(struct pt_regs *regs, unsigned long val)
{
unsigned long new_sp = regs->sp - sizeof_long();
- if (copy_to_user((void __user *)new_sp, &ip, sizeof_long()))
+ if (copy_to_user((void __user *)new_sp, &val, sizeof_long()))
return -EFAULT;
regs->sp = new_sp;
@@ -566,7 +566,7 @@ static int default_post_xol_op(struct arch_uprobe *auprobe, struct pt_regs *regs
regs->ip += correction;
} else if (auprobe->defparam.fixups & UPROBE_FIX_CALL) {
regs->sp += sizeof_long(); /* Pop incorrect return address */
- if (push_ret_address(regs, utask->vaddr + auprobe->defparam.ilen))
+ if (emulate_push_stack(regs, utask->vaddr + auprobe->defparam.ilen))
return -ERESTART;
}
/* popf; tell the caller to not touch TF */
@@ -655,7 +655,7 @@ static bool branch_emulate_op(struct arch_uprobe *auprobe, struct pt_regs *regs)
*
* But there is corner case, see the comment in ->post_xol().
*/
- if (push_ret_address(regs, new_ip))
+ if (emulate_push_stack(regs, new_ip))
return false;
} else if (!check_jmp_cond(auprobe, regs)) {
offs = 0;
@@ -665,6 +665,16 @@ static bool branch_emulate_op(struct arch_uprobe *auprobe, struct pt_regs *regs)
return true;
}
+static bool push_emulate_op(struct arch_uprobe *auprobe, struct pt_regs *regs)
+{
+ unsigned long *src_ptr = (void *)regs + auprobe->push.reg_offset;
+
+ if (emulate_push_stack(regs, *src_ptr))
+ return false;
+ regs->ip += auprobe->push.ilen;
+ return true;
+}
+
static int branch_post_xol_op(struct arch_uprobe *auprobe, struct pt_regs *regs)
{
BUG_ON(!branch_is_call(auprobe));
@@ -703,6 +713,10 @@ static const struct uprobe_xol_ops branch_xol_ops = {
.post_xol = branch_post_xol_op,
};
+static const struct uprobe_xol_ops push_xol_ops = {
+ .emulate = push_emulate_op,
+};
+
/* Returns -ENOSYS if branch_xol_ops doesn't handle this insn */
static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
{
@@ -750,6 +764,87 @@ static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
return 0;
}
+/* Returns -ENOSYS if push_xol_ops doesn't handle this insn */
+static int push_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
+{
+ u8 opc1 = OPCODE1(insn), reg_offset = 0;
+
+ if (opc1 < 0x50 || opc1 > 0x57)
+ return -ENOSYS;
+
+ if (insn->length > 2)
+ return -ENOSYS;
+ if (insn->length == 2) {
+ /* only support rex_prefix 0x41 (x64 only) */
+#ifdef CONFIG_X86_64
+ if (insn->rex_prefix.nbytes != 1 ||
+ insn->rex_prefix.bytes[0] != 0x41)
+ return -ENOSYS;
+
+ switch (opc1) {
+ case 0x50:
+ reg_offset = offsetof(struct pt_regs, r8);
+ break;
+ case 0x51:
+ reg_offset = offsetof(struct pt_regs, r9);
+ break;
+ case 0x52:
+ reg_offset = offsetof(struct pt_regs, r10);
+ break;
+ case 0x53:
+ reg_offset = offsetof(struct pt_regs, r11);
+ break;
+ case 0x54:
+ reg_offset = offsetof(struct pt_regs, r12);
+ break;
+ case 0x55:
+ reg_offset = offsetof(struct pt_regs, r13);
+ break;
+ case 0x56:
+ reg_offset = offsetof(struct pt_regs, r14);
+ break;
+ case 0x57:
+ reg_offset = offsetof(struct pt_regs, r15);
+ break;
+ }
+#else
+ return -ENOSYS;
+#endif
+ } else {
+ switch (opc1) {
+ case 0x50:
+ reg_offset = offsetof(struct pt_regs, ax);
+ break;
+ case 0x51:
+ reg_offset = offsetof(struct pt_regs, cx);
+ break;
+ case 0x52:
+ reg_offset = offsetof(struct pt_regs, dx);
+ break;
+ case 0x53:
+ reg_offset = offsetof(struct pt_regs, bx);
+ break;
+ case 0x54:
+ reg_offset = offsetof(struct pt_regs, sp);
+ break;
+ case 0x55:
+ reg_offset = offsetof(struct pt_regs, bp);
+ break;
+ case 0x56:
+ reg_offset = offsetof(struct pt_regs, si);
+ break;
+ case 0x57:
+ reg_offset = offsetof(struct pt_regs, di);
+ break;
+ }
+ }
+
+ auprobe->push.reg_offset = reg_offset;
+ auprobe->push.ilen = insn->length;
+ auprobe->ops = &push_xol_ops;
+ return 0;
+}
+
/**
* arch_uprobe_analyze_insn - instruction analysis including validity and fixups.
* @mm: the probed address space.
@@ -771,6 +866,10 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm,
if (ret != -ENOSYS)
return ret;
+ ret = push_setup_xol_ops(auprobe, &insn);
+ if (ret != -ENOSYS)
+ return ret;
+
/*
* Figure out which fixups default_post_xol_op() will need to perform,
* and annotate defparam->fixups accordingly.

arch/x86/tools/Makefile

View file
diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
index 972b8e8..09af7ff 100644
--- a/arch/x86/tools/Makefile
+++ b/arch/x86/tools/Makefile
@@ -13,28 +13,28 @@ else
posttest_64bit = -n
endif
-distill_awk = $(srctree)/arch/x86/tools/distill.awk
+reformatter = $(srctree)/arch/x86/tools/objdump_reformat.awk
chkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk
quiet_cmd_posttest = TEST $@
- cmd_posttest = ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(distill_awk) | $(obj)/test_get_len $(posttest_64bit) $(posttest_verbose)
+ cmd_posttest = ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(reformatter) | $(obj)/insn_decoder_test $(posttest_64bit) $(posttest_verbose)
quiet_cmd_sanitytest = TEST $@
cmd_sanitytest = $(obj)/insn_sanity $(posttest_64bit) -m 1000000
-posttest: $(obj)/test_get_len vmlinux $(obj)/insn_sanity
+posttest: $(obj)/insn_decoder_test vmlinux $(obj)/insn_sanity
$(call cmd,posttest)
$(call cmd,sanitytest)
-hostprogs-y += test_get_len insn_sanity
+hostprogs-y += insn_decoder_test insn_sanity
# -I needed for generated C source and C source which in the kernel tree.
-HOSTCFLAGS_test_get_len.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include/uapi/ -I$(srctree)/arch/x86/include/ -I$(srctree)/arch/x86/lib/ -I$(srctree)/include/uapi/
+HOSTCFLAGS_insn_decoder_test.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include/uapi/ -I$(srctree)/arch/x86/include/ -I$(srctree)/arch/x86/lib/ -I$(srctree)/include/uapi/
HOSTCFLAGS_insn_sanity.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include/ -I$(srctree)/arch/x86/lib/ -I$(srctree)/include/
# Dependencies are also needed.
-$(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
+$(obj)/insn_decoder_test.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
$(obj)/insn_sanity.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c

arch/x86/tools/insn_decoder_test.c

View file
diff --git a/arch/x86/tools/test_get_len.c b/arch/x86/tools/insn_decoder_test.c
similarity index 86%
rename from arch/x86/tools/test_get_len.c
rename to arch/x86/tools/insn_decoder_test.c
index ecf31e0..a3b4fd9 100644
--- a/arch/x86/tools/test_get_len.c
+++ b/arch/x86/tools/insn_decoder_test.c
@@ -9,10 +9,6 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
* Copyright (C) IBM Corporation, 2009
*/
@@ -21,6 +17,7 @@
#include <string.h>
#include <assert.h>
#include <unistd.h>
+#include <stdarg.h>
#define unlikely(cond) (cond)
@@ -33,7 +30,7 @@
* particular. See if insn_get_length() and the disassembler agree
* on the length of each instruction in an elf disassembly.
*
- * Usage: objdump -d a.out | awk -f distill.awk | ./test_get_len
+ * Usage: objdump -d a.out | awk -f objdump_reformat.awk | ./insn_decoder_test
*/
const char *prog;
@@ -42,8 +39,8 @@ static int x86_64;
static void usage(void)
{
- fprintf(stderr, "Usage: objdump -d a.out | awk -f distill.awk |"
- " %s [-y|-n] [-v]\n", prog);
+ fprintf(stderr, "Usage: objdump -d a.out | awk -f objdump_reformat.awk"
+ " | %s [-y|-n] [-v]\n", prog);
fprintf(stderr, "\t-y 64bit mode\n");
fprintf(stderr, "\t-n 32bit mode\n");
fprintf(stderr, "\t-v verbose mode\n");
@@ -52,10 +49,21 @@ static void usage(void)
static void malformed_line(const char *line, int line_nr)
{
- fprintf(stderr, "%s: malformed line %d:\n%s", prog, line_nr, line);
+ fprintf(stderr, "%s: error: malformed line %d:\n%s",
+ prog, line_nr, line);
exit(3);
}
+static void pr_warn(const char *fmt, ...)
+{
+ va_list ap;
+
+ fprintf(stderr, "%s: warning: ", prog);
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+}
+
static void dump_field(FILE *fp, const char *name, const char *indent,
struct insn_field *field)
{
@@ -153,21 +161,20 @@ int main(int argc, char **argv)
insn_get_length(&insn);
if (insn.length != nb) {
warnings++;
- fprintf(stderr, "Warning: %s found difference at %s\n",
- prog, sym);
- fprintf(stderr, "Warning: %s", line);
- fprintf(stderr, "Warning: objdump says %d bytes, but "
- "insn_get_length() says %d\n", nb,
- insn.length);
+ pr_warn("Found an x86 instruction decoder bug, "
+ "please report this.\n", sym);
+ pr_warn("%s", line);
+ pr_warn("objdump says %d bytes, but insn_get_length() "
+ "says %d\n", nb, insn.length);
if (verbose)
dump_insn(stderr, &insn);
}
}
if (warnings)
- fprintf(stderr, "Warning: decoded and checked %d"
- " instructions with %d warnings\n", insns, warnings);
+ pr_warn("Decoded and checked %d instructions with %d "
+ "failures\n", insns, warnings);
else
- fprintf(stdout, "Success: decoded and checked %d"
- " instructions\n", insns);
+ fprintf(stdout, "%s: success: Decoded and checked %d"
+ " instructions\n", prog, insns);
return 0;
}

arch/x86/tools/objdump_reformat.awk

View file
diff --git a/arch/x86/tools/distill.awk b/arch/x86/tools/objdump_reformat.awk
similarity index 95%
rename from arch/x86/tools/distill.awk
rename to arch/x86/tools/objdump_reformat.awk
index e0edecc..f418c91 100644
--- a/arch/x86/tools/distill.awk
+++ b/arch/x86/tools/objdump_reformat.awk
@@ -1,7 +1,7 @@
#!/bin/awk -f
# SPDX-License-Identifier: GPL-2.0
-# Usage: objdump -d a.out | awk -f distill.awk | ./test_get_len
-# Distills the disassembly as follows:
+# Usage: objdump -d a.out | awk -f objdump_reformat.awk | ./insn_decoder_test
+# Reformats the disassembly as follows:
# - Removes all lines except the disassembled instructions.
# - For instructions that exceed 1 line (7 bytes), crams all the hex bytes
# into a single line.

include/uapi/linux/perf_event.h

View file
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index b9a4953..c77c9a2 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -612,9 +612,12 @@ struct perf_event_mmap_page {
*/
#define PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT (1 << 12)
/*
- * PERF_RECORD_MISC_MMAP_DATA and PERF_RECORD_MISC_COMM_EXEC are used on
- * different events so can reuse the same bit position.
- * Ditto PERF_RECORD_MISC_SWITCH_OUT.
+ * Following PERF_RECORD_MISC_* are used on different
+ * events, so can reuse the same bit position:
+ *
+ * PERF_RECORD_MISC_MMAP_DATA - PERF_RECORD_MMAP* events
+ * PERF_RECORD_MISC_COMM_EXEC - PERF_RECORD_COMM event
+ * PERF_RECORD_MISC_SWITCH_OUT - PERF_RECORD_SWITCH* events
*/
#define PERF_RECORD_MISC_MMAP_DATA (1 << 13)
#define PERF_RECORD_MISC_COMM_EXEC (1 << 13)
@@ -864,6 +867,7 @@ enum perf_event_type {
* struct perf_event_header header;
* u32 pid;
* u32 tid;
+ * struct sample_id sample_id;
* };
*/
PERF_RECORD_ITRACE_START = 12,

kernel/events/callchain.c

View file
diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c
index 1b2be63..772a43f 100644
--- a/kernel/events/callchain.c
+++ b/kernel/events/callchain.c
@@ -179,21 +179,6 @@ put_callchain_entry(int rctx)
}
struct perf_callchain_entry *
-perf_callchain(struct perf_event *event, struct pt_regs *regs)
-{
- bool kernel = !event->attr.exclude_callchain_kernel;
- bool user = !event->attr.exclude_callchain_user;
- /* Disallow cross-task user callchains. */
- bool crosstask = event->ctx->task && event->ctx->task != current;
- const u32 max_stack = event->attr.sample_max_stack;
-
- if (!kernel && !user)
- return NULL;
-
- return get_perf_callchain(regs, 0, kernel, user, max_stack, crosstask, true);
-}
-
-struct perf_callchain_entry *
get_perf_callchain(struct pt_regs *regs, u32 init_nr, bool kernel, bool user,
u32 max_stack, bool crosstask, bool add_mark)
{

kernel/events/core.c

View file
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 5d8f403..d99fe3f 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5824,19 +5824,11 @@ void perf_output_sample(struct perf_output_handle *handle,
perf_output_read(handle, event);
if (sample_type & PERF_SAMPLE_CALLCHAIN) {
- if (data->callchain) {
- int size = 1;
-
- if (data->callchain)
- size += data->callchain->nr;
-
- size *= sizeof(u64);
+ int size = 1;
- __output_copy(handle, data->callchain, size);
- } else {
- u64 nr = 0;
- perf_output_put(handle, nr);
- }
+ size += data->callchain->nr;
+ size *= sizeof(u64);
+ __output_copy(handle, data->callchain, size);
}
if (sample_type & PERF_SAMPLE_RAW) {
@@ -5989,6 +5981,26 @@ static u64 perf_virt_to_phys(u64 virt)
return phys_addr;
}
+static struct perf_callchain_entry __empty_callchain = { .nr = 0, };
+
+static struct perf_callchain_entry *
+perf_callchain(struct perf_event *event, struct pt_regs *regs)
+{
+ bool kernel = !event->attr.exclude_callchain_kernel;
+ bool user = !event->attr.exclude_callchain_user;
+ /* Disallow cross-task user callchains. */
+ bool crosstask = event->ctx->task && event->ctx->task != current;
+ const u32 max_stack = event->attr.sample_max_stack;
+ struct perf_callchain_entry *callchain;
+
+ if (!kernel && !user)
+ return &__empty_callchain;
+
+ callchain = get_perf_callchain(regs, 0, kernel, user,
+ max_stack, crosstask, true);
+ return callchain ?: &__empty_callchain;
+}
+
void perf_prepare_sample(struct perf_event_header *header,
struct perf_sample_data *data,
struct perf_event *event,

This diff is incomplete. Download the complete patch.

kernel/events/internal.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/alpha/include/uapi/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/mips/include/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/mips/include/uapi/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/parisc/include/uapi/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/powerpc/include/uapi/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/s390/include/uapi/asm/unistd.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/sparc/include/uapi/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/x86/include/asm/cpufeatures.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/x86/include/asm/disabled-features.h

View file

This diff is incomplete. Download the complete patch.

tools/arch/x86/include/uapi/asm/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/build/Makefile.feature

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-all.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libopencsd.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-pthread-barrier.c

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/asm-generic/errno-base.h

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/asm-generic/errno.h

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/linux/perf_event.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/traceevent/event-parse.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/traceevent/event-plugin.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/traceevent/kbuffer-parse.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/traceevent/parse-filter.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-buildid-cache.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-evlist.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-inject.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-lock.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-probe.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-record.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-report.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-sched.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-script.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-timechart.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-top.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-trace.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf.data-file-format.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/tips.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Makefile.config

View file

This diff is incomplete. Download the complete patch.

tools/perf/Makefile.perf

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm/util/auxtrace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/arm-spe.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/header.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/sym-handling.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/common.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/common.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/header.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/sym-handling.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/s390/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/s390/annotate/instructions.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/s390/entry/syscalls/mksyscalltbl

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/perf-time-to-tsc.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/header.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/unwind-libunwind.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-hash.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-lock-pi.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-requeue.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-wake-parallel.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-wake.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-buildid-cache.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-c2c.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-help.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-inject.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-kvm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-report.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-script.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-top.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-trace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/check-headers.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/perf-completion.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/perf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/arm64/cavium/thunderx2-imp-def.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/arm64/mapfile.csv

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/mapfile.csv

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/marked.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/pmc.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power9/translation.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwell/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellde/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/broadwellx/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/goldmont/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/goldmont/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/goldmont/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/goldmont/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/goldmont/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswell/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/haswellx/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivybridge/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/ivytown/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/mapfile.csv

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/silvermont/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylakex/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/jevents.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/bin/mem-phys-addr-record

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/bin/mem-phys-addr-report

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/mem-phys-addr.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/attr.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/backward-ring-buffer.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bp_signal.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bpf-script-example.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/builtin-test.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/code-reading.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/dwarf-unwind.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/keep-tracking.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/mmap-basic.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/openat-syscall-tp-fields.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/perf-record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/sample-parsing.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/trace+probe_vfs_getname.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/sw-clock.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/switch-tracking.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/task-exit.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/thread-map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/arch_errno_names.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/arch_errno_names.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/beauty.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/flock.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/futex_val3.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/browsers/annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/gtk/annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe-pkt-decoder.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe-pkt-decoder.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/auxtrace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/auxtrace.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf-loader.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/callchain.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/callchain.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cs-etm-decoder/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cs-etm-decoder/cs-etm-decoder.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cs-etm-decoder/cs-etm-decoder.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cs-etm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cs-etm.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/data.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/dso.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/env.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/env.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/event.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evlist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evlist.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evsel.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evsel.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/generate-cmdlist.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/header.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/header.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/intel-bts.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/intel-pt-decoder/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/intel-pt.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/machine.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/metricgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mmap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mmap.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/ordered-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/ordered-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/path.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/path.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmu.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/python-ext-sources

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/python.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/rblist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/rblist.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/scripting-engines/trace-event-python.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/session.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/session.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sort.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/srcline.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/srcline.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat-shadow.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/string.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/string2.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/syscalltbl.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/target.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread_map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread_map.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/time-utils.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/time-utils.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/tool.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/unwind-libunwind-local.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/unwind-libunwind.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/util.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/util.h

View file

This diff is incomplete. Download the complete patch.