projects/linux·commit 36db171c

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

36db171c · Linus Torvalds <[email protected]> · 2016-05-16 14:08:43 -07:00

Pull perf updates from Ingo Molnar:
 "Bigger kernel side changes:

   - Add backwards writing capability to the perf ring-buffer code,
     which is preparation for future advanced features like robust
     'overwrite support' and snapshot mode.  (Wang Nan)

   - Add pause and resume ioctls for the perf ringbuffer (Wang Nan)

   - x86 Intel cstate code cleanups and reorgnization (Thomas Gleixner)

   - x86 Intel uncore and CPU PMU driver updates (Kan Liang, Peter
     Zijlstra)

   - x86 AUX (Intel PT) related enhancements and updates (Alexander
     Shishkin)

   - x86 MSR PMU driver enhancements and updates (Huang Rui)

   - ... and lots of other changes spread out over 40+ commits.

  Biggest tooling side changes:

   - 'perf trace' features and enhancements.  (Arnaldo Carvalho de Melo)

   - BPF tooling updates (Wang Nan)

   - 'perf sched' updates (Jiri Olsa)

   - 'perf probe' updates (Masami Hiramatsu)

   - ... plus 200+ other enhancements, fixes and cleanups to tools/

  The merge commits, the shortlog and the changelogs contain a lot more
  details"

* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (249 commits)
  perf/core: Disable the event on a truncated AUX record
  perf/x86/intel/pt: Generate PMI in the STOP region as well
  perf buildid-cache: Use lsdir() for looking up buildid caches
  perf symbols: Use lsdir() for the search in kcore cache directory
  perf tools: Use SBUILD_ID_SIZE where applicable
  perf tools: Fix lsdir to set errno correctly
  perf trace: Move seccomp args beautifiers to tools/perf/trace/beauty/
  perf trace: Move flock op beautifier to tools/perf/trace/beauty/
  perf build: Add build-test for debug-frame on arm/arm64
  perf build: Add build-test for libunwind cross-platforms support
  perf script: Fix export of callchains with recursion in db-export
  perf script: Fix callchain addresses in db-export
  perf script: Fix symbol insertion behavior in db-export
  perf symbols: Add dso__insert_symbol function
  perf scripting python: Use Py_FatalError instead of die()
  perf tools: Remove xrealloc and ALLOC_GROW
  perf help: Do not use ALLOC_GROW in add_cmd_list
  perf pmu: Make pmu_formats_string to check return value of strbuf
  perf header: Make topology checkers to check return value of strbuf
  perf tools: Make alias handler to check return value of strbuf
  ...
Commit
36db171cc733bc7b8c628ef21831467d1919decd
Parents
3469d261 · 3f56e687

Merge commit. Changes below are compared with the first parent: 3469d261.

Changes

217 files changed · +8328 −2731

FileStatusAddDelContent
Documentation/sysctl/kernel.txtmodified+14−0View file
arch/arm/kernel/hw_breakpoint.cmodified+2−2View file
arch/arm/kernel/perf_callchain.cmodified+1−1View file
arch/arm64/kernel/hw_breakpoint.cmodified+2−2View file
arch/arm64/kernel/perf_callchain.cmodified+2−2View file
arch/metag/kernel/perf_callchain.cmodified+1−1View file
arch/mips/kernel/perf_event.cmodified+2−2View file
arch/powerpc/perf/callchain.cmodified+2−2View file
arch/sparc/kernel/perf_event.cmodified+3−3View file
arch/x86/Kconfigmodified+2−13View file
arch/x86/events/Kconfigadded+36−0View file
arch/x86/events/Makefilemodified+3−6View file
arch/x86/events/amd/uncore.cmodified+2−0View file
arch/x86/events/core.cmodified+8−2View file
arch/x86/events/intel/Makefileadded+9−0View file
arch/x86/events/intel/bts.cmodified+48−57View file
arch/x86/events/intel/core.cmodified+159−1View file
arch/x86/events/intel/cstate.cmodified+256−291View file
arch/x86/events/intel/ds.cmodified+6−0View file
arch/x86/events/intel/lbr.cmodified+30−1View file
arch/x86/events/intel/pt.cmodified+250−68View file
arch/x86/events/intel/pt.hmodified+68−0View file
arch/x86/events/intel/rapl.cmodified+141−42View file
arch/x86/events/intel/uncore.cmodified+126−90View file
arch/x86/events/msr.cmodified+26−10View file
arch/x86/events/perf_event.hmodified+5−0View file
arch/x86/include/asm/cpufeatures.hmodified+2−0View file
arch/x86/include/asm/msr-index.hmodified+15−20View file
arch/x86/kernel/uprobes.cmodified+2−2View file
arch/xtensa/kernel/perf_event.cmodified+2−2View file
drivers/perf/arm_pmu.cmodified+8−0View file
drivers/powercap/intel_rapl.cmodified+69−0View file
include/linux/perf_event.hmodified+135−4View file
include/uapi/linux/perf_event.hmodified+3−1View file
kernel/bpf/stackmap.cmodified+4−4View file
kernel/events/callchain.cmodified+33−2View file
kernel/events/core.cmodified+857−54View file
kernel/events/internal.hmodified+9−1View file
kernel/events/ring_buffer.cmodified+87−31View file
kernel/sysctl.cmodified+12−0View file
kernel/trace/trace_event_perf.cmodified+3−0View file
tools/Makefilemodified+2−1View file
tools/build/Makefile.featuremodified+7−1View file
tools/build/feature/Makefilemodified+23−0View file
tools/build/feature/test-bpf.cmodified+1−2View file
tools/build/feature/test-libunwind-aarch64.cadded+26−0View file
tools/build/feature/test-libunwind-arm.cadded+27−0View file
tools/build/feature/test-libunwind-debug-frame-aarch64.cadded+16−0View file
tools/build/feature/test-libunwind-debug-frame-arm.cadded+16−0View file
tools/build/feature/test-libunwind-x86.cadded+27−0View file
tools/build/feature/test-libunwind-x86_64.cadded+27−0View file
tools/lib/api/fs/fs.cmodified+13−0View file
tools/lib/api/fs/fs.hmodified+2−0View file
tools/perf/Documentation/intel-pt.txtmodified+7−0View file
tools/perf/Documentation/itrace.txtmodified+8−0View file
tools/perf/Documentation/perf-annotate.txtmodified+1−1View file
tools/perf/Documentation/perf-diff.txtmodified+1−1View file
tools/perf/Documentation/perf-list.txtmodified+106−1View file
tools/perf/Documentation/perf-mem.txtmodified+8−0View file
tools/perf/Documentation/perf-record.txtmodified+13−0View file
tools/perf/Documentation/perf-report.txtmodified+2−2View file
tools/perf/Documentation/perf-sched.txtmodified+16−0View file
tools/perf/Documentation/perf-script.txtmodified+14−0View file
tools/perf/Documentation/perf-top.txtmodified+1−1View file
tools/perf/Documentation/perf-trace.txtmodified+32−0View file
tools/perf/Makefile.perfmodified+9−6View file
tools/perf/arch/powerpc/Makefilemodified+1−0View file
tools/perf/arch/powerpc/util/dwarf-regs.cmodified+28−12View file
tools/perf/arch/powerpc/util/sym-handling.cmodified+32−11View file
tools/perf/arch/x86/Makefilemodified+23−0View file
tools/perf/arch/x86/entry/syscalls/syscall_64.tbladded+376−0View file
tools/perf/arch/x86/entry/syscalls/syscalltbl.shadded+39−0View file
tools/perf/arch/x86/tests/perf-time-to-tsc.cmodified+1−1View file
tools/perf/arch/x86/util/intel-bts.cmodified+5−0View file
tools/perf/arch/x86/util/intel-pt.cmodified+5−0View file
tools/perf/arch/x86/util/tsc.cmodified+31−1View file
tools/perf/arch/x86/util/tsc.hdeleted+0−17View before deletion
tools/perf/bench/futex-lock-pi.cmodified+1−1View file
tools/perf/bench/futex.hmodified+2−4View file
tools/perf/bench/mem-functions.cmodified+15−7View file
tools/perf/builtin-config.cmodified+32−7View file
tools/perf/builtin-diff.cmodified+2−2View file
tools/perf/builtin-help.cmodified+10−8View file
tools/perf/builtin-inject.cmodified+1−0View file
tools/perf/builtin-kmem.cmodified+1−1View file
tools/perf/builtin-kvm.cmodified+1−1View file
tools/perf/builtin-mem.cmodified+10−1View file
tools/perf/builtin-record.cmodified+220−47View file
tools/perf/builtin-report.cmodified+10−9View file
tools/perf/builtin-sched.cmodified+186−12View file
tools/perf/builtin-script.cmodified+35−21View file
tools/perf/builtin-stat.cmodified+8−0View file
tools/perf/builtin-top.cmodified+19−20View file
tools/perf/builtin-trace.cmodified+416−669View file
tools/perf/config/Makefilemodified+1−4View file
tools/perf/jvmti/jvmti_agent.cmodified+41−2View file
tools/perf/perf.cmodified+11−5View file
tools/perf/perf.hmodified+0−1View file
tools/perf/scripts/python/export-to-postgresql.pymodified+32−20View file
tools/perf/tests/Buildmodified+2−0View file
tools/perf/tests/backward-ring-buffer.cadded+151−0View file
tools/perf/tests/bpf.cmodified+1−1View file
tools/perf/tests/builtin-test.cmodified+8−0View file
tools/perf/tests/code-reading.cmodified+1−1View file
tools/perf/tests/dso-data.cmodified+1−1View file
tools/perf/tests/event-times.cadded+236−0View file
tools/perf/tests/event_update.cmodified+1−1View file
tools/perf/tests/hists_common.cmodified+1−1View file
tools/perf/tests/hists_cumulate.cmodified+2−2View file
tools/perf/tests/hists_filter.cmodified+1−1View file
tools/perf/tests/hists_link.cmodified+2−2View file
tools/perf/tests/hists_output.cmodified+2−2View file
tools/perf/tests/keep-tracking.cmodified+1−1View file
tools/perf/tests/openat-syscall-tp-fields.cmodified+1−1View file
tools/perf/tests/perf-record.cmodified+1−1View file
tools/perf/tests/switch-tracking.cmodified+1−1View file
tools/perf/tests/tests.hmodified+2−0View file
tools/perf/tests/vmlinux-kallsyms.cmodified+10−1View file
tools/perf/trace/beauty/eventfd.cadded+38−0View file
tools/perf/trace/beauty/flock.cadded+31−0View file
tools/perf/trace/beauty/futex_op.cadded+44−0View file
tools/perf/trace/beauty/mmap.cadded+158−0View file
tools/perf/trace/beauty/mode_t.cadded+68−0View file
tools/perf/trace/beauty/msg_flags.cadded+62−0View file
tools/perf/trace/beauty/open_flags.cadded+56−0View file
tools/perf/trace/beauty/perf_event_open.cadded+43−0View file
tools/perf/trace/beauty/pid.cadded+21−0View file
tools/perf/trace/beauty/sched_policy.cadded+44−0View file
tools/perf/trace/beauty/seccomp.cadded+52−0View file
tools/perf/trace/beauty/signum.cadded+53−0View file
tools/perf/trace/beauty/socket_type.cadded+60−0View file
tools/perf/trace/beauty/waitid_options.cadded+26−0View file
tools/perf/ui/browsers/hists.cmodified+20−20View file
tools/perf/ui/gtk/hists.cmodified+1−1View file
tools/perf/ui/hist.cmodified+1−1View file
tools/perf/ui/stdio/hist.cmodified+1−2View file
tools/perf/util/Buildmodified+5−3View file
tools/perf/util/annotate.cmodified+2−2View file
tools/perf/util/auxtrace.cmodified+7−0View file
tools/perf/util/auxtrace.hmodified+2−0View file
tools/perf/util/bpf-loader.cmodified+143−0View file
tools/perf/util/bpf-loader.hmodified+19−0View file
tools/perf/util/build-id.cmodified+7−29View file
tools/perf/util/cache.hmodified+0−19View file
tools/perf/util/call-path.cadded+122−0View file
tools/perf/util/call-path.hadded+77−0View file
tools/perf/util/callchain.cmodified+6−3View file
tools/perf/util/callchain.hmodified+8−1View file
tools/perf/util/config.cmodified+191−31View file
tools/perf/util/config.hadded+26−0View file
tools/perf/util/cpumap.cmodified+12−0View file
tools/perf/util/cpumap.hmodified+2−0View file
tools/perf/util/data.cmodified+41−0View file
tools/perf/util/data.hmodified+10−1View file
tools/perf/util/db-export.cmodified+87−2View file
tools/perf/util/db-export.hmodified+3−0View file
tools/perf/util/dso.cmodified+2−2View file
tools/perf/util/dwarf-aux.cmodified+24−28View file
tools/perf/util/event.cmodified+1−0View file
tools/perf/util/event.hmodified+9−0View file
tools/perf/util/evlist.cmodified+134−40View file
tools/perf/util/evlist.hmodified+21−1View file
tools/perf/util/evsel.cmodified+38−101View file
tools/perf/util/evsel.hmodified+26−2View file
tools/perf/util/evsel_fprintf.cadded+212−0View file
tools/perf/util/header.cmodified+21−12View file
tools/perf/util/help-unknown-cmd.cmodified+22−8View file
tools/perf/util/hist.cmodified+13−10View file
tools/perf/util/hist.hmodified+10−2View file
tools/perf/util/intel-bts.cmodified+5−0View file
tools/perf/util/intel-pt-decoder/intel-pt-decoder.cmodified+1−1View file
tools/perf/util/intel-pt.cmodified+20−2View file
tools/perf/util/jitdump.cmodified+34−7View file
tools/perf/util/jitdump.hmodified+3−0View file
tools/perf/util/machine.cmodified+73−32View file
tools/perf/util/machine.hmodified+7−0View file
tools/perf/util/map.cmodified+15−1View file
tools/perf/util/ordered-events.cmodified+9−0View file
tools/perf/util/ordered-events.hmodified+1−0View file
tools/perf/util/pmu.cmodified+11−12View file
tools/perf/util/probe-event.cmodified+215−191View file
tools/perf/util/probe-event.hmodified+3−2View file
tools/perf/util/probe-file.cmodified+1−2View file
tools/perf/util/probe-finder.cmodified+21−15View file
tools/perf/util/python-ext-sourcesmodified+1−0View file
tools/perf/util/quote.cmodified+20−16View file
tools/perf/util/quote.hmodified+1−1View file
tools/perf/util/rb_resort.hadded+149−0View file
tools/perf/util/record.cmodified+3−2View file
tools/perf/util/scripting-engines/trace-event-perl.cmodified+118−8View file
tools/perf/util/scripting-engines/trace-event-python.cmodified+41−6View file
tools/perf/util/session.cmodified+13−102View file
tools/perf/util/session.hmodified+1−11View file
tools/perf/util/sort.cmodified+14−21View file
tools/perf/util/sort.hmodified+0−7View file
tools/perf/util/stat.cmodified+3−1View file
tools/perf/util/strbuf.cmodified+67−26View file
tools/perf/util/strbuf.hmodified+15−10View file
tools/perf/util/symbol-elf.cmodified+7−13View file
tools/perf/util/symbol.cmodified+37−71View file
tools/perf/util/symbol.hmodified+18−1View file
tools/perf/util/symbol_fprintf.cadded+71−0View file
tools/perf/util/syscalltbl.cadded+134−0View file
tools/perf/util/syscalltbl.hadded+20−0View file
tools/perf/util/thread-stack.cmodified+1−138View file
tools/perf/util/thread-stack.hmodified+10−21View file
tools/perf/util/thread.cmodified+20−1View file
tools/perf/util/thread.hmodified+8−0View file
tools/perf/util/thread_map.cmodified+13−1View file
tools/perf/util/thread_map.hmodified+3−0View file
tools/perf/util/tool.hmodified+1−0View file
tools/perf/util/trigger.hadded+94−0View file
tools/perf/util/tsc.hmodified+20−1View file
tools/perf/util/unwind-libunwind.cmodified+9−16View file
tools/perf/util/util.cmodified+36−2View file
tools/perf/util/util.hmodified+9−6View file
tools/perf/util/wrapper.cdeleted+0−29View before deletion

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

Documentation/sysctl/kernel.txt

View file
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
index fcddfd5..daabdd7 100644
--- a/Documentation/sysctl/kernel.txt
+++ b/Documentation/sysctl/kernel.txt
@@ -60,6 +60,7 @@ show up in /proc/sys/kernel:
- panic_on_warn
- perf_cpu_time_max_percent
- perf_event_paranoid
+- perf_event_max_stack
- pid_max
- powersave-nap [ PPC only ]
- printk
@@ -654,6 +655,19 @@ users (without CAP_SYS_ADMIN). The default value is 2.
==============================================================
+perf_event_max_stack:
+
+Controls maximum number of stack frames to copy for (attr.sample_type &
+PERF_SAMPLE_CALLCHAIN) configured events, for instance, when using
+'perf record -g' or 'perf trace --call-graph fp'.
+
+This can only be done when no events are in use that have callchains
+enabled, otherwise writing to this file will return -EBUSY.
+
+The default value is 127.
+
+==============================================================
+
pid_max:
PID allocation wrap value. When the kernel's next PID value

arch/arm/kernel/hw_breakpoint.c

View file
diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c
index 6284779..b8df458 100644
--- a/arch/arm/kernel/hw_breakpoint.c
+++ b/arch/arm/kernel/hw_breakpoint.c
@@ -631,7 +631,7 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp)
info->address &= ~alignment_mask;
info->ctrl.len <<= offset;
- if (!bp->overflow_handler) {
+ if (is_default_overflow_handler(bp)) {
/*
* Mismatch breakpoints are required for single-stepping
* breakpoints.
@@ -754,7 +754,7 @@ static void watchpoint_handler(unsigned long addr, unsigned int fsr,
* mismatch breakpoint so we can single-step over the
* watchpoint trigger.
*/
- if (!wp->overflow_handler)
+ if (is_default_overflow_handler(wp))
enable_single_step(wp, instruction_pointer(regs));
unlock:

arch/arm/kernel/perf_callchain.c

View file
diff --git a/arch/arm/kernel/perf_callchain.c b/arch/arm/kernel/perf_callchain.c
index 4e02ae5..27563be 100644
--- a/arch/arm/kernel/perf_callchain.c
+++ b/arch/arm/kernel/perf_callchain.c
@@ -75,7 +75,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
tail = (struct frame_tail __user *)regs->ARM_fp - 1;
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
+ while ((entry->nr < sysctl_perf_event_max_stack) &&
tail && !((unsigned long)tail & 0x3))
tail = user_backtrace(tail, entry);
}

arch/arm64/kernel/hw_breakpoint.c

View file
diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_breakpoint.c
index b45c95d..4ef5373 100644
--- a/arch/arm64/kernel/hw_breakpoint.c
+++ b/arch/arm64/kernel/hw_breakpoint.c
@@ -616,7 +616,7 @@ static int breakpoint_handler(unsigned long unused, unsigned int esr,
perf_bp_event(bp, regs);
/* Do we need to handle the stepping? */
- if (!bp->overflow_handler)
+ if (is_default_overflow_handler(bp))
step = 1;
unlock:
rcu_read_unlock();
@@ -712,7 +712,7 @@ static int watchpoint_handler(unsigned long addr, unsigned int esr,
perf_bp_event(wp, regs);
/* Do we need to handle the stepping? */
- if (!wp->overflow_handler)
+ if (is_default_overflow_handler(wp))
step = 1;
unlock:

arch/arm64/kernel/perf_callchain.c

View file
diff --git a/arch/arm64/kernel/perf_callchain.c b/arch/arm64/kernel/perf_callchain.c
index ff46654..32c3c6e 100644
--- a/arch/arm64/kernel/perf_callchain.c
+++ b/arch/arm64/kernel/perf_callchain.c
@@ -122,7 +122,7 @@ void perf_callchain_user(struct perf_callchain_entry *entry,
tail = (struct frame_tail __user *)regs->regs[29];
- while (entry->nr < PERF_MAX_STACK_DEPTH &&
+ while (entry->nr < sysctl_perf_event_max_stack &&
tail && !((unsigned long)tail & 0xf))
tail = user_backtrace(tail, entry);
} else {
@@ -132,7 +132,7 @@ void perf_callchain_user(struct perf_callchain_entry *entry,
tail = (struct compat_frame_tail __user *)regs->compat_fp - 1;
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
+ while ((entry->nr < sysctl_perf_event_max_stack) &&
tail && !((unsigned long)tail & 0x3))
tail = compat_user_backtrace(tail, entry);
#endif

arch/metag/kernel/perf_callchain.c

View file
diff --git a/arch/metag/kernel/perf_callchain.c b/arch/metag/kernel/perf_callchain.c
index 3156334..252abc1 100644
--- a/arch/metag/kernel/perf_callchain.c
+++ b/arch/metag/kernel/perf_callchain.c
@@ -65,7 +65,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
--frame;
- while ((entry->nr < PERF_MAX_STACK_DEPTH) && frame)
+ while ((entry->nr < sysctl_perf_event_max_stack) && frame)
frame = user_backtrace(frame, entry);
}

arch/mips/kernel/perf_event.c

View file
diff --git a/arch/mips/kernel/perf_event.c b/arch/mips/kernel/perf_event.c
index c1cf9c6..5021c54 100644
--- a/arch/mips/kernel/perf_event.c
+++ b/arch/mips/kernel/perf_event.c
@@ -35,7 +35,7 @@ static void save_raw_perf_callchain(struct perf_callchain_entry *entry,
addr = *sp++;
if (__kernel_text_address(addr)) {
perf_callchain_store(entry, addr);
- if (entry->nr >= PERF_MAX_STACK_DEPTH)
+ if (entry->nr >= sysctl_perf_event_max_stack)
break;
}
}
@@ -59,7 +59,7 @@ void perf_callchain_kernel(struct perf_callchain_entry *entry,
}
do {
perf_callchain_store(entry, pc);
- if (entry->nr >= PERF_MAX_STACK_DEPTH)
+ if (entry->nr >= sysctl_perf_event_max_stack)
break;
pc = unwind_stack(current, &sp, pc, &ra);
} while (pc);

arch/powerpc/perf/callchain.c

View file
diff --git a/arch/powerpc/perf/callchain.c b/arch/powerpc/perf/callchain.c
index e04a675..22d9015 100644
--- a/arch/powerpc/perf/callchain.c
+++ b/arch/powerpc/perf/callchain.c
@@ -247,7 +247,7 @@ static void perf_callchain_user_64(struct perf_callchain_entry *entry,
sp = regs->gpr[1];
perf_callchain_store(entry, next_ip);
- while (entry->nr < PERF_MAX_STACK_DEPTH) {
+ while (entry->nr < sysctl_perf_event_max_stack) {
fp = (unsigned long __user *) sp;
if (!valid_user_sp(sp, 1) || read_user_stack_64(fp, &next_sp))
return;
@@ -453,7 +453,7 @@ static void perf_callchain_user_32(struct perf_callchain_entry *entry,
sp = regs->gpr[1];
perf_callchain_store(entry, next_ip);
- while (entry->nr < PERF_MAX_STACK_DEPTH) {
+ while (entry->nr < sysctl_perf_event_max_stack) {
fp = (unsigned int __user *) (unsigned long) sp;
if (!valid_user_sp(sp, 0) || read_user_stack_32(fp, &next_sp))
return;

arch/sparc/kernel/perf_event.c

View file
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c
index 6596f66..a4b8b5a 100644
--- a/arch/sparc/kernel/perf_event.c
+++ b/arch/sparc/kernel/perf_event.c
@@ -1756,7 +1756,7 @@ void perf_callchain_kernel(struct perf_callchain_entry *entry,
}
}
#endif
- } while (entry->nr < PERF_MAX_STACK_DEPTH);
+ } while (entry->nr < sysctl_perf_event_max_stack);
}
static inline int
@@ -1790,7 +1790,7 @@ static void perf_callchain_user_64(struct perf_callchain_entry *entry,
pc = sf.callers_pc;
ufp = (unsigned long)sf.fp + STACK_BIAS;
perf_callchain_store(entry, pc);
- } while (entry->nr < PERF_MAX_STACK_DEPTH);
+ } while (entry->nr < sysctl_perf_event_max_stack);
}
static void perf_callchain_user_32(struct perf_callchain_entry *entry,
@@ -1822,7 +1822,7 @@ static void perf_callchain_user_32(struct perf_callchain_entry *entry,
ufp = (unsigned long)sf.fp;
}
perf_callchain_store(entry, pc);
- } while (entry->nr < PERF_MAX_STACK_DEPTH);
+ } while (entry->nr < sysctl_perf_event_max_stack);
}
void

arch/x86/Kconfig

View file
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 2dc1860..a494fa3 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -164,10 +164,6 @@ config INSTRUCTION_DECODER
def_bool y
depends on KPROBES || PERF_EVENTS || UPROBES
-config PERF_EVENTS_INTEL_UNCORE
- def_bool y
- depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
-
config OUTPUT_FORMAT
string
default "elf32-i386" if X86_32
@@ -1046,6 +1042,8 @@ config X86_THERMAL_VECTOR
def_bool y
depends on X86_MCE_INTEL
+source "arch/x86/events/Kconfig"
+
config X86_LEGACY_VM86
bool "Legacy VM86 support"
default n
@@ -1210,15 +1208,6 @@ config MICROCODE_OLD_INTERFACE
def_bool y
depends on MICROCODE
-config PERF_EVENTS_AMD_POWER
- depends on PERF_EVENTS && CPU_SUP_AMD
- tristate "AMD Processor Power Reporting Mechanism"
- ---help---
- Provide power reporting mechanism support for AMD processors.
- Currently, it leverages X86_FEATURE_ACC_POWER
- (CPUID Fn8000_0007_EDX[12]) interface to calculate the
- average power consumption on Family 15h processors.
-
config X86_MSR
tristate "/dev/cpu/*/msr - Model-specific register support"
---help---

arch/x86/events/Kconfig

View file
diff --git a/arch/x86/events/Kconfig b/arch/x86/events/Kconfig
new file mode 100644
index 0000000..98397db
--- /dev/null
+++ b/arch/x86/events/Kconfig
@@ -0,0 +1,36 @@
+menu "Performance monitoring"
+
+config PERF_EVENTS_INTEL_UNCORE
+ tristate "Intel uncore performance events"
+ depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
+ default y
+ ---help---
+ Include support for Intel uncore performance events. These are
+ available on NehalemEX and more modern processors.
+
+config PERF_EVENTS_INTEL_RAPL
+ tristate "Intel rapl performance events"
+ depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
+ default y
+ ---help---
+ Include support for Intel rapl performance events for power
+ monitoring on modern processors.
+
+config PERF_EVENTS_INTEL_CSTATE
+ tristate "Intel cstate performance events"
+ depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
+ default y
+ ---help---
+ Include support for Intel cstate performance events for power
+ monitoring on modern processors.
+
+config PERF_EVENTS_AMD_POWER
+ depends on PERF_EVENTS && CPU_SUP_AMD
+ tristate "AMD Processor Power Reporting Mechanism"
+ ---help---
+ Provide power reporting mechanism support for AMD processors.
+ Currently, it leverages X86_FEATURE_ACC_POWER
+ (CPUID Fn8000_0007_EDX[12]) interface to calculate the
+ average power consumption on Family 15h processors.
+
+endmenu

arch/x86/events/Makefile

View file
diff --git a/arch/x86/events/Makefile b/arch/x86/events/Makefile
index f59618a..1d392c3 100644
--- a/arch/x86/events/Makefile
+++ b/arch/x86/events/Makefile
@@ -6,9 +6,6 @@ obj-$(CONFIG_X86_LOCAL_APIC) += amd/ibs.o msr.o
ifdef CONFIG_AMD_IOMMU
obj-$(CONFIG_CPU_SUP_AMD) += amd/iommu.o
endif
-obj-$(CONFIG_CPU_SUP_INTEL) += intel/core.o intel/bts.o intel/cqm.o
-obj-$(CONFIG_CPU_SUP_INTEL) += intel/cstate.o intel/ds.o intel/knc.o
-obj-$(CONFIG_CPU_SUP_INTEL) += intel/lbr.o intel/p4.o intel/p6.o intel/pt.o
-obj-$(CONFIG_CPU_SUP_INTEL) += intel/rapl.o msr.o
-obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE) += intel/uncore.o intel/uncore_nhmex.o
-obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE) += intel/uncore_snb.o intel/uncore_snbep.o
+
+obj-$(CONFIG_CPU_SUP_INTEL) += msr.o
+obj-$(CONFIG_CPU_SUP_INTEL) += intel/

arch/x86/events/amd/uncore.c

View file
diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 3db9569..98ac573 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -263,6 +263,7 @@ static const struct attribute_group *amd_uncore_attr_groups[] = {
};
static struct pmu amd_nb_pmu = {
+ .task_ctx_nr = perf_invalid_context,
.attr_groups = amd_uncore_attr_groups,
.name = "amd_nb",
.event_init = amd_uncore_event_init,
@@ -274,6 +275,7 @@ static struct pmu amd_nb_pmu = {
};
static struct pmu amd_l2_pmu = {
+ .task_ctx_nr = perf_invalid_context,
.attr_groups = amd_uncore_attr_groups,
.name = "amd_l2",
.event_init = amd_uncore_event_init,

arch/x86/events/core.c

View file
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 041e442..5e5e76a 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -360,6 +360,9 @@ int x86_add_exclusive(unsigned int what)
{
int i;
+ if (x86_pmu.lbr_pt_coexist)
+ return 0;
+
if (!atomic_inc_not_zero(&x86_pmu.lbr_exclusive[what])) {
mutex_lock(&pmc_reserve_mutex);
for (i = 0; i < ARRAY_SIZE(x86_pmu.lbr_exclusive); i++) {
@@ -380,6 +383,9 @@ fail_unlock:
void x86_del_exclusive(unsigned int what)
{
+ if (x86_pmu.lbr_pt_coexist)
+ return;
+
atomic_dec(&x86_pmu.lbr_exclusive[what]);
atomic_dec(&active_events);
}
@@ -2277,7 +2283,7 @@ perf_callchain_user32(struct pt_regs *regs, struct perf_callchain_entry *entry)
fp = compat_ptr(ss_base + regs->bp);
pagefault_disable();
- while (entry->nr < PERF_MAX_STACK_DEPTH) {
+ while (entry->nr < sysctl_perf_event_max_stack) {
unsigned long bytes;
frame.next_frame = 0;
frame.return_address = 0;
@@ -2337,7 +2343,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
return;
pagefault_disable();
- while (entry->nr < PERF_MAX_STACK_DEPTH) {
+ while (entry->nr < sysctl_perf_event_max_stack) {
unsigned long bytes;
frame.next_frame = NULL;
frame.return_address = 0;

arch/x86/events/intel/Makefile

View file
diff --git a/arch/x86/events/intel/Makefile b/arch/x86/events/intel/Makefile
new file mode 100644
index 0000000..3660b2c
--- /dev/null
+++ b/arch/x86/events/intel/Makefile
@@ -0,0 +1,9 @@
+obj-$(CONFIG_CPU_SUP_INTEL) += core.o bts.o cqm.o
+obj-$(CONFIG_CPU_SUP_INTEL) += ds.o knc.o
+obj-$(CONFIG_CPU_SUP_INTEL) += lbr.o p4.o p6.o pt.o
+obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL) += intel-rapl.o
+intel-rapl-objs := rapl.o
+obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE) += intel-uncore.o
+intel-uncore-objs := uncore.o uncore_nhmex.o uncore_snb.o uncore_snbep.o
+obj-$(CONFIG_PERF_EVENTS_INTEL_CSTATE) += intel-cstate.o
+intel-cstate-objs := cstate.o

arch/x86/events/intel/bts.c

View file
diff --git a/arch/x86/events/intel/bts.c b/arch/x86/events/intel/bts.c
index b99dc92..0a6e393 100644
--- a/arch/x86/events/intel/bts.c
+++ b/arch/x86/events/intel/bts.c
@@ -171,18 +171,6 @@ static void bts_buffer_pad_out(struct bts_phys *phys, unsigned long head)
memset(page_address(phys->page) + index, 0, phys->size - index);
}
-static bool bts_buffer_is_full(struct bts_buffer *buf, struct bts_ctx *bts)
-{
- if (buf->snapshot)
- return false;
-
- if (local_read(&buf->data_size) >= bts->handle.size ||
- bts->handle.size - local_read(&buf->data_size) < BTS_RECORD_SIZE)
- return true;
-
- return false;
-}
-
static void bts_update(struct bts_ctx *bts)
{
int cpu = raw_smp_processor_id();
@@ -213,18 +201,15 @@ static void bts_update(struct bts_ctx *bts)
}
}
+static int
+bts_buffer_reset(struct bts_buffer *buf, struct perf_output_handle *handle);
+
static void __bts_event_start(struct perf_event *event)
{
struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
struct bts_buffer *buf = perf_get_aux(&bts->handle);
u64 config = 0;
- if (!buf || bts_buffer_is_full(buf, bts))
- return;
-
- event->hw.itrace_started = 1;
- event->hw.state = 0;
-
if (!buf->snapshot)
config |= ARCH_PERFMON_EVENTSEL_INT;
if (!event->attr.exclude_kernel)
@@ -241,16 +226,41 @@ static void __bts_event_start(struct perf_event *event)
wmb();
intel_pmu_enable_bts(config);
+
}
static void bts_event_start(struct perf_event *event, int flags)
{
+ struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
+ struct bts_buffer *buf;
+
+ buf = perf_aux_output_begin(&bts->handle, event);
+ if (!buf)
+ goto fail_stop;
+
+ if (bts_buffer_reset(buf, &bts->handle))
+ goto fail_end_stop;
+
+ bts->ds_back.bts_buffer_base = cpuc->ds->bts_buffer_base;
+ bts->ds_back.bts_absolute_maximum = cpuc->ds->bts_absolute_maximum;
+ bts->ds_back.bts_interrupt_threshold = cpuc->ds->bts_interrupt_threshold;
+
+ event->hw.itrace_started = 1;
+ event->hw.state = 0;
__bts_event_start(event);
/* PMI handler: this counter is running and likely generating PMIs */
ACCESS_ONCE(bts->started) = 1;
+
+ return;
+
+fail_end_stop:
+ perf_aux_output_end(&bts->handle, 0, false);
+
+fail_stop:
+ event->hw.state = PERF_HES_STOPPED;
}
static void __bts_event_stop(struct perf_event *event)
@@ -269,15 +279,32 @@ static void __bts_event_stop(struct perf_event *event)
static void bts_event_stop(struct perf_event *event, int flags)
{
+ struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
+ struct bts_buffer *buf = perf_get_aux(&bts->handle);
/* PMI handler: don't restart this counter */
ACCESS_ONCE(bts->started) = 0;
__bts_event_stop(event);
- if (flags & PERF_EF_UPDATE)
+ if (flags & PERF_EF_UPDATE) {
bts_update(bts);
+
+ if (buf) {
+ if (buf->snapshot)
+ bts->handle.head =
+ local_xchg(&buf->data_size,
+ buf->nr_pages << PAGE_SHIFT);
+ perf_aux_output_end(&bts->handle, local_xchg(&buf->data_size, 0),
+ !!local_xchg(&buf->lost, 0));
+ }
+
+ cpuc->ds->bts_index = bts->ds_back.bts_buffer_base;
+ cpuc->ds->bts_buffer_base = bts->ds_back.bts_buffer_base;
+ cpuc->ds->bts_absolute_maximum = bts->ds_back.bts_absolute_maximum;
+ cpuc->ds->bts_interrupt_threshold = bts->ds_back.bts_interrupt_threshold;
+ }
}
void intel_bts_enable_local(void)
@@ -417,34 +444,14 @@ int intel_bts_interrupt(void)
static void bts_event_del(struct perf_event *event, int mode)
{
- struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
- struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
- struct bts_buffer *buf = perf_get_aux(&bts->handle);
-
bts_event_stop(event, PERF_EF_UPDATE);
-
- if (buf) {
- if (buf->snapshot)
- bts->handle.head =
- local_xchg(&buf->data_size,
- buf->nr_pages << PAGE_SHIFT);
- perf_aux_output_end(&bts->handle, local_xchg(&buf->data_size, 0),
- !!local_xchg(&buf->lost, 0));
- }
-
- cpuc->ds->bts_index = bts->ds_back.bts_buffer_base;
- cpuc->ds->bts_buffer_base = bts->ds_back.bts_buffer_base;
- cpuc->ds->bts_absolute_maximum = bts->ds_back.bts_absolute_maximum;
- cpuc->ds->bts_interrupt_threshold = bts->ds_back.bts_interrupt_threshold;
}
static int bts_event_add(struct perf_event *event, int mode)
{
- struct bts_buffer *buf;
struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
- int ret = -EBUSY;
event->hw.state = PERF_HES_STOPPED;
@@ -454,26 +461,10 @@ static int bts_event_add(struct perf_event *event, int mode)
if (bts->handle.event)
return -EBUSY;
- buf = perf_aux_output_begin(&bts->handle, event);
- if (!buf)
- return -EINVAL;
-
- ret = bts_buffer_reset(buf, &bts->handle);
- if (ret) {
- perf_aux_output_end(&bts->handle, 0, false);
- return ret;
- }
-
- bts->ds_back.bts_buffer_base = cpuc->ds->bts_buffer_base;
- bts->ds_back.bts_absolute_maximum = cpuc->ds->bts_absolute_maximum;
- bts->ds_back.bts_interrupt_threshold = cpuc->ds->bts_interrupt_threshold;
-
if (mode & PERF_EF_START) {
bts_event_start(event, 0);
- if (hwc->state & PERF_HES_STOPPED) {
- bts_event_del(event, 0);
- return -EBUSY;
- }
+ if (hwc->state & PERF_HES_STOPPED)
+ return -EINVAL;
}
return 0;

arch/x86/events/intel/core.c

View file
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 5210eaa..7c66695 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -1465,6 +1465,140 @@ static __initconst const u64 slm_hw_cache_event_ids
},
};
+static struct extra_reg intel_glm_extra_regs[] __read_mostly = {
+ /* must define OFFCORE_RSP_X first, see intel_fixup_er() */
+ INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0x760005ffbfull, RSP_0),
+ INTEL_UEVENT_EXTRA_REG(0x02b7, MSR_OFFCORE_RSP_1, 0x360005ffbfull, RSP_1),
+ EVENT_EXTRA_END
+};
+
+#define GLM_DEMAND_DATA_RD BIT_ULL(0)
+#define GLM_DEMAND_RFO BIT_ULL(1)
+#define GLM_ANY_RESPONSE BIT_ULL(16)
+#define GLM_SNP_NONE_OR_MISS BIT_ULL(33)
+#define GLM_DEMAND_READ GLM_DEMAND_DATA_RD
+#define GLM_DEMAND_WRITE GLM_DEMAND_RFO
+#define GLM_DEMAND_PREFETCH (SNB_PF_DATA_RD|SNB_PF_RFO)
+#define GLM_LLC_ACCESS GLM_ANY_RESPONSE
+#define GLM_SNP_ANY (GLM_SNP_NONE_OR_MISS|SNB_NO_FWD|SNB_HITM)
+#define GLM_LLC_MISS (GLM_SNP_ANY|SNB_NON_DRAM)
+
+static __initconst const u64 glm_hw_cache_event_ids
+ [PERF_COUNT_HW_CACHE_MAX]
+ [PERF_COUNT_HW_CACHE_OP_MAX]
+ [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
+ [C(L1D)] = {
+ [C(OP_READ)] = {
+ [C(RESULT_ACCESS)] = 0x81d0, /* MEM_UOPS_RETIRED.ALL_LOADS */
+ [C(RESULT_MISS)] = 0x0,
+ },
+ [C(OP_WRITE)] = {
+ [C(RESULT_ACCESS)] = 0x82d0, /* MEM_UOPS_RETIRED.ALL_STORES */
+ [C(RESULT_MISS)] = 0x0,
+ },
+ [C(OP_PREFETCH)] = {

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/cstate.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/ds.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/lbr.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/pt.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/pt.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/rapl.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/intel/uncore.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/msr.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/events/perf_event.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/cpufeatures.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/msr-index.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/uprobes.c

View file

This diff is incomplete. Download the complete patch.

arch/xtensa/kernel/perf_event.c

View file

This diff is incomplete. Download the complete patch.

drivers/perf/arm_pmu.c

View file

This diff is incomplete. Download the complete patch.

drivers/powercap/intel_rapl.c

View file

This diff is incomplete. Download the complete patch.

include/linux/perf_event.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/perf_event.h

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/stackmap.c

View file

This diff is incomplete. Download the complete patch.

kernel/events/callchain.c

View file

This diff is incomplete. Download the complete patch.

kernel/events/core.c

View file

This diff is incomplete. Download the complete patch.

kernel/events/internal.h

View file

This diff is incomplete. Download the complete patch.

kernel/events/ring_buffer.c

View file

This diff is incomplete. Download the complete patch.

kernel/sysctl.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_event_perf.c

View file

This diff is incomplete. Download the complete patch.

tools/Makefile

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-bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libunwind-aarch64.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libunwind-arm.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libunwind-debug-frame-aarch64.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libunwind-debug-frame-arm.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libunwind-x86.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-libunwind-x86_64.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/api/fs/fs.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/api/fs/fs.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/intel-pt.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/itrace.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-annotate.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-diff.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-list.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-mem.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-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/Makefile.perf

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/powerpc/util/dwarf-regs.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/x86/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/entry/syscalls/syscall_64.tbl

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/entry/syscalls/syscalltbl.sh

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/intel-bts.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/intel-pt.c

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/tsc.h

View before deletion

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.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/mem-functions.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-config.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-diff.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-kmem.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-mem.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-sched.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/config/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/jvmti/jvmti_agent.c

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/perf.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/export-to-postgresql.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/Build

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/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/dso-data.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/event-times.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/event_update.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_common.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_cumulate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_filter.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_link.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_output.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/openat-syscall-tp-fields.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/switch-tracking.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/tests.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/vmlinux-kallsyms.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/eventfd.c

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_op.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/mmap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/mode_t.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/msg_flags.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/open_flags.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/perf_event_open.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/pid.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/sched_policy.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/seccomp.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/signum.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/socket_type.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/waitid_options.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/browsers/hists.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/gtk/hists.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/hist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/stdio/hist.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/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/bpf-loader.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/build-id.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cache.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/call-path.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/call-path.h

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/config.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/config.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cpumap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cpumap.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/data.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/db-export.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/db-export.h

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/dwarf-aux.c

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/evsel_fprintf.c

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/help-unknown-cmd.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/hist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/hist.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/intel-pt-decoder.c

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/jitdump.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/jitdump.h

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/machine.h

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/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/pmu.c

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/probe-event.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-file.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-finder.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/quote.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/quote.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/rb_resort.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/record.c

View file

This diff is incomplete. Download the complete patch.

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

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/sort.h

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/strbuf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/strbuf.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol-elf.c

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/symbol_fprintf.c

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/syscalltbl.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread-stack.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread-stack.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread.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/tool.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/trigger.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/tsc.h

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.

tools/perf/util/wrapper.c

View before deletion

This diff is incomplete. Download the complete patch.