perf changes for v2.6.39
Linus,
Please pull the latest perf-core-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git perf-core-for-linus
Thanks,
Ingo
------------------>
Andi Kleen (2):
perf: Add support for supplementary event registers
perf: Fix LLC-* events on Intel Nehalem/Westmere
Arnaldo Carvalho de Melo (77):
perf evsel: Introduce perf_evlist
perf evlist: Adopt the pollfd array
perf evsel: Support event groups
perf evsel: Allow specifying if the inherit bit should be set perf top: Use perf_evsel__open
perf record: Use perf_evsel__open
perf evsel: Introduce mmap support
perf record: Use struct perf_mmap and helpers
perf record: Move perf_mmap__write_tail to perf.h
perf evlist: Move the mmap array from perf_evsel
perf record: Use perf_evlist__mmap
perf tools: Add missing cpu_map__delete()
perf test: Check counts on all cpus in test__open_syscall_event_on_all_cpus perf evlist: Steal mmap reading routine from 'perf top'
perf test: Add test for the evlist mmap routines
perf top: Add native_safe_halt to skip symbols
perf tools: Pass the struct opt to the wildcard parsing routine perf threads: Move thread_map to separate file
perf tools: Move event__parse_sample to evsel.c
perf evsel: Introduce perf_evsel__{in,ex}it
perf record: No need to check for overwrites
perf events: Account PERF_RECORD_LOST events in event__process perf evlist: Support non overwrite mode in perf_evlist__read_on_cpu perf top: Switch to non overwrite mode
perf tools: Rename 'struct sample_data' to 'struct perf_sample' perf tools: Kill event_t typedef, use 'union perf_event' instead perf tools: Initial python binding
perf evlist: Move evlist methods to evlist.c
perf evlist: Store pointer to the cpu and thread maps
perf top: Move display agnostic routines to util/top.[ch]
perf tools: Don't fallback to setup_pager unconditionally
perf top: Introduce slang based TUI
perf probe: Use %td for pointer arithmetic result
perf python: Fix build on 32-bit
perf tools: Remove verbose build messages for the python binding perf tools: Fix up 'make clean' target
perf stat: Fix up resource release order
perf tools: Don't try to build python bindings if Python.h not available perf top: Remove superfluous name_len field
perf annotate: Move annotate functions to util/
perf annotate: Support multiple histograms in annotation
perf annotate: Config options for symbol__tty_annotate
perf annotate: Separate objdump parsing from actual screen rendering perf top: Ditch private annotation code, share perf annotate's perf annotate: Fix --stdio rendering
perf annotate: Move locking to struct annotation
perf annotate: Fix annotate context lines regression
perf report: Fix initializion of annotate symbol priv area perf ui: Serialize screen updates
perf annotate: Check if offset is less than symbol size
perf annotate browser: Use the percent color for the whole line perf python: Add cgroup.c to setup.py to get it building again perf hists: Print number of samples, not the period sum
perf record: Delay setting the header writing atexit call
perf report: Tell the user when a perf.data file has no samples perf list: Allow filtering list of events
perf probe: Fix error propagation leading to segfault
perf evsel: Fix inverted test for fixing up attr.inherit flag perf probe: Remove redundant checks
perf top: Live TUI Annotation
perf top browser: Adjust the browser indexes when refreshing perf annotate: Show better message when no vmlinux is found perf top browser: Fix up exit keys
perf ui browser: Introduce ui_browser__show_title
perf symbols: Fix vmlinux path when not using --symfs
perf top browser: Handle empty active symbols list
perf tui: Make ui__warning modal
perf top: Fix reporting of invalid --vmlinux
perf top tui: Wait till the first sample to refresh the screen. perf report tui: Fix multi event switching
perf hists: Remove needless global col lenght calcs
perf hists browser: Handle browsing empty hists tree
perf evlist: Split perf_evlist__id_hash
perf tools: Improve support for sessions with multiple events perf report tui: Improve multi event session support
perf session: Use evlist/evsel for managing perf.data attributes perf header: Stop using 'self'
Borislav Petkov (1):
perf annotate: Fix build error
David Sharp (8):
tracing: Add an 'overwrite' trace_option.
ring-buffer: Remove unused #include <linux/trace_irq.h>
tracing: Fix event alignment: ftrace:context_switch and ftrace:wakeup
tracing: Fix event alignment: module:module_request
tracing: Fix event alignment: kvm:kvm_hv_hypercall
tracing: Fix event alignment: mce:mce_record
tracing: Fix event alignment: skb:kfree_skb
tracing: Adjust conditional expression latency formatting.
Denis Kirjanov (1):
perf top: Use pid_t for target_{pid|tid}Franck Bui-Huu (2):
perf record: auto detect when stdout is a pipe
perf probe: Rewrite find_lazy_match_lines() by using getline(3)
Frederic Weisbecker (7):
perf callchain: Feed callchains into a cursor
perf callchain: Rename cumul_hits into callchain_cumul_hits
perf callchain: Rename register_callchain_param into callchain_register_param perf callchain: Don't give arbitrary gender to callchain tree nodes
perf: Set filters before mmaping events
perf: Fix missing strndup declaration
perf: Fix undefined PyVarObject_HEAD_INIT in python 2.5
Han Pingtian (2):
perf test: check if cpu_map__new() return NULL perf test: Fix return values checking
Ian Munsie (5):
tracing/syscalls: Don't add events for unmapped syscalls tracing/syscalls: Convert redundant syscall_nr checks into WARN_ON tracing/syscalls: Make arch_syscall_addr weak tracing/syscalls: Allow arch specific syscall symbol matching tracing/syscalls: Early terminate search for sys_ni_syscall
Ingo Molnar (2):
Revert "tracing: Add unstable sched clock note to the warning" perf probe: Clean up probe_point_lazy_walker() return value
Jan Beulich (1):
x86: Remove die_nmi()
Jesse Brandeburg (1):
perf tools: Update Makefile with some help
Jiri Olsa (6):
tracing: Add unstable sched clock note to the warning
x86: Separate out entry text section
kprobes: Disabling optimized kprobes for entry text section perf top: Fix events overflow in top command
perf top: Don't let events to eat up whole header line
tracing: Explain about unstable clock on resume with ring buffer warning
Kyle McMartin (1):
perf tool: Fix gcc 4.6.0 issues
Lai Jiangshan (1):
tracing: Compile time initialization for event flags value
Li Zefan (4):
perf cgroup: Fix leak of file reference count perf cgroup: Fix unmatched call to perf_detach_cgroup() perf cgroup: Clean up perf_cgroup_create() perf cgroup: Fix a typo in kernel config
Lin Ming (3):
perf, x86: Add Intel SandyBridge CPU support
perf: Fix the missing event initialization when pmu is found in idr
perf: Avoid the percore allocations if the CPU is not HT capable
Marcin Slusarz (1):
perf lock: Document valid sort keys
Masami Hiramatsu (13):
perf probe: Introduce lines walker interface
perf probe: Enable to put probe inline function call site perf probe: Add --funcs to show available functions in symtab perf tools: Add strfilter for general purpose string filter perf probe: Add variable filter support
perf probe: Add filters support for available functions tracing/kprobes: Cleanup strict_strtol() using code tracing/kprobes: Support longer (>128 bytes) command tracing/kprobes: Add bitfield type
perf probe: Add bitfield member support tracing/kprobe: Fix NULL pointer deref check
perf probe: Support function@filename syntax for --line perf probe: Show filename which contains target function
Michael Witten (5):
perf tools: Makefile: Use $(QUIET_GEN) for perf.so perf tools: Makefile: Remove vestigial git-specific cruft perf tools: Makefile: Remove platform-specific cruft perf tools: Makefile: Remove tool-specific cruft perf tools: Makefile: Remove various and sundry cruft
Peter Zijlstra (6):
perf: Cure task_oncpu_function_call() races
cgroup: Fix cgroup_subsys::exit callback
perf: Optimize throttling code
perf: Optimize hrtimer events
perf: Simplify task_clock_event_read()
perf: Fix cgroup vs jump_label problem
Robert Richter (5):
perf, x86: Use helper function in x86_pmu_enable_all() perf, x86: Calculate perfctr msr addresses in helper functions perf, x86: Add new AMD family 15h msrs to perfctr reservation code perf, x86: Store perfctr msr addresses in config_base/event_base perf, x86: Add support for AMD family 15h core counters
Stephane Eranian (5):
perf: Add cgroup support
perf tool: Add cgroup support
perf: make perf stat print user provided full event names
perf_events: Fix rcu and locking issues with cgroup support
perf_events: Update PEBS event constraints
Steven Rostedt (22):
tracing/filter: Have no filter return a match tracing/filter: Move OR and AND logic out of fn() method tracing/filter: Dynamically allocate preds tracing/filter: Call synchronize_sched() just once for system filters tracing/filter: Allocate the preds in an array tracing/filter: Free pred array on disabling of filter tracing/filter: Use a tree instead of stack for filter_match_preds() tracing/filter: Optimize short ciruit check tracing/filter: Check the created pred tree tracing/filter: Optimize filter by folding the tree tracing/filter: Move MAX_FILTER_PRED to local tracing directory tracing/filter: Increase the max preds to 2^14 tracing/filter: Swap entire filter of events tracing/filter: Remove synchronize_sched() from __alloc_preds()
tracing: Remove obsolete sched_switch tracer
tracing: Deprecate tracing_enabled for tracing_on
ftrace: Fix memory leak with function graph and cpu hotplug
tracing: Remove lock_depth from event entry
ftrace: Add .ref.text as one of the safe areas to trace ftrace/graph: Trace function entry before updating index
tracing: Align 4 byte ints together in struct tracer
tracing: Fix irqoff selftest expanding max buffer
Uwe Kleine-König (1):
trivial: Fix Steven's Copyright typos
Yinghai Lu (2):
x86, perf: Change two init functions to static perf top: Fix TUI compilation
Yuanhan Liu (1):
tracing: Export trace_set_clr_event()
Documentation/trace/ftrace-design.txt | 7 + Documentation/trace/ftrace.txt | 151 +--- Documentation/trace/kprobetrace.txt | 16 +- arch/x86/ia32/ia32entry.S | 2 + arch/x86/include/asm/cpufeature.h | 2 + arch/x86/include/asm/kdebug.h | 1 - arch/x86/include/asm/msr-index.h | 3 + arch/x86/include/asm/nmi.h | 1 - arch/x86/include/asm/smp.h | 10 + arch/x86/kernel/cpu/perf_event.c | 170 +++- arch/x86/kernel/cpu/perf_event_amd.c | 175 ++++- arch/x86/kernel/cpu/perf_event_intel.c | 417 ++++++++- arch/x86/kernel/cpu/perf_event_intel_ds.c | 97 ++- arch/x86/kernel/cpu/perf_event_p4.c | 8 +- arch/x86/kernel/cpu/perf_event_p6.c | 4 +- arch/x86/kernel/cpu/perfctr-watchdog.c | 4 + arch/x86/kernel/dumpstack.c | 25 - arch/x86/kernel/entry_32.S | 6 +- arch/x86/kernel/entry_64.S | 6 +- arch/x86/kernel/ftrace.c | 15 +- arch/x86/kernel/kgdb.c | 9 - arch/x86/kernel/kprobes.c | 8 + arch/x86/kernel/vmlinux.lds.S | 1 + arch/x86/kvm/trace.h | 8 +- include/asm-generic/sections.h | 1 + include/asm-generic/vmlinux.lds.h | 6 + include/linux/cgroup.h | 4 +- include/linux/cgroup_subsys.h | 4 + include/linux/ftrace.h | 2 + include/linux/ftrace_event.h | 2 - include/linux/perf_event.h | 50 +- include/linux/ring_buffer.h | 2 + include/linux/sched.h | 7 - include/linux/syscalls.h | 10 +- include/trace/events/mce.h | 8 +- include/trace/events/module.h | 5 +- include/trace/events/skb.h | 4 +- init/Kconfig | 10 + kernel/cgroup.c | 54 +- kernel/perf_event.c | 1004 ++++++++++++++++--- kernel/sched.c | 37 +- kernel/sysctl.c | 2 +- kernel/trace/ftrace.c | 52 +- kernel/trace/ring_buffer.c | 24 +- kernel/trace/trace.c | 38 +- kernel/trace/trace.h | 41 +- kernel/trace/trace_entries.h | 6 +- kernel/trace/trace_events.c | 2 +- kernel/trace/trace_events_filter.c | 885 ++++++++++++++--- kernel/trace/trace_kprobe.c | 111 ++- kernel/trace/trace_output.c | 36 +- kernel/trace/trace_sched_switch.c | 48 - kernel/trace/trace_syscalls.c | 42 +- scripts/kconfig/streamline_config.pl | 2 +- scripts/recordmcount.c | 3 +- scripts/recordmcount.pl | 1 + tools/perf/.gitignore | 1 - tools/perf/Documentation/Makefile | 19 +- tools/perf/Documentation/perf-list.txt | 23 +- tools/perf/Documentation/perf-lock.txt | 12 +- tools/perf/Documentation/perf-probe.txt | 26 +- tools/perf/Documentation/perf-record.txt | 11 + tools/perf/Documentation/perf-stat.txt | 11 + tools/perf/Makefile | 649 ++----------- tools/perf/bench/sched-pipe.c | 2 +- tools/perf/builtin-annotate.c | 351 ++----- tools/perf/builtin-diff.c | 16 +- tools/perf/builtin-inject.c | 82 +- tools/perf/builtin-kmem.c | 10 +- tools/perf/builtin-list.c | 43 +- tools/perf/builtin-lock.c | 8 +- tools/perf/builtin-probe.c | 70 ++- tools/perf/builtin-record.c | 450 ++++------ tools/perf/builtin-report.c | 225 ++--- tools/perf/builtin-sched.c | 27 +- tools/perf/builtin-script.c | 17 +- tools/perf/builtin-stat.c | 118 ++- tools/perf/builtin-test.c | 184 ++++- tools/perf/builtin-timechart.c | 13 +- tools/perf/builtin-top.c | 1029 ++++++-------------- tools/perf/perf.h | 26 + tools/perf/python/twatch.py | 41 + tools/perf/util/annotate.c | 605 ++++++++++++ tools/perf/util/annotate.h | 103 ++ tools/perf/util/build-id.c | 21 +- tools/perf/util/cache.h | 7 +- tools/perf/util/callchain.c | 227 +++--- tools/perf/util/callchain.h | 76 ++- tools/perf/util/cgroup.c | 178 ++++ tools/perf/util/cgroup.h | 17 + tools/perf/util/cpumap.c | 5 + tools/perf/util/cpumap.h | 2 +- tools/perf/util/debug.c | 2 +- tools/perf/util/debug.h | 2 +- tools/perf/util/event.c | 374 ++----- tools/perf/util/event.h | 78 +- tools/perf/util/evlist.c | 394 ++++++++ tools/perf/util/evlist.h | 68 ++ tools/perf/util/evsel.c | 234 ++++- tools/perf/util/evsel.h | 47 +- tools/perf/util/exec_cmd.c | 19 - tools/perf/util/header.c | 535 +++++------ tools/perf/util/header.h | 95 +-- tools/perf/util/hist.c | 250 +----- tools/perf/util/hist.h | 60 +- tools/perf/util/include/linux/list.h | 1 + tools/perf/util/parse-events.c | 175 ++-- tools/perf/util/parse-events.h | 12 +- tools/perf/util/probe-event.c | 159 +++- tools/perf/util/probe-event.h | 4 +- tools/perf/util/probe-finder.c | 531 ++++++----- tools/perf/util/python.c | 896 +++++++++++++++++ .../util/scripting-engines/trace-event-python.c | 3 +- tools/perf/util/session.c | 266 +++--- tools/perf/util/session.h | 41 +- tools/perf/util/setup.py | 19 + tools/perf/util/strfilter.c | 199 ++++ tools/perf/util/strfilter.h | 48 + tools/perf/util/symbol.c | 7 +- tools/perf/util/symbol.h | 1 - tools/perf/util/thread.c | 55 - tools/perf/util/thread.h | 14 - tools/perf/util/thread_map.c | 64 ++ tools/perf/util/thread_map.h | 15 + tools/perf/util/top.c | 238 +++++ tools/perf/util/top.h | 66 ++ tools/perf/util/trace-event-parse.c | 2 +- tools/perf/util/ui/browser.c | 25 +- tools/perf/util/ui/browser.h | 3 +- tools/perf/util/ui/browsers/annotate.c | 178 +++-- tools/perf/util/ui/browsers/hists.c | 197 +++- tools/perf/util/ui/browsers/map.c | 2 +- tools/perf/util/ui/browsers/top.c | 213 ++++ tools/perf/util/ui/helpline.c | 5 +- tools/perf/util/ui/libslang.h | 6 +- tools/perf/util/ui/setup.c | 8 +- tools/perf/util/ui/ui.h | 8 + tools/perf/util/ui/util.c | 7 +- tools/perf/util/util.h | 26 - tools/testing/ktest/ktest.pl | 2 +- 140 files changed, 9295 insertions(+), 4713 deletions(-) create mode 100755 tools/perf/python/twatch.py create mode 100644 tools/perf/util/annotate.c create mode 100644 tools/perf/util/annotate.h create mode 100644 tools/perf/util/cgroup.c create mode 100644 tools/perf/util/cgroup.h create mode 100644 tools/perf/util/evlist.c create mode 100644 tools/perf/util/evlist.h create mode 100644 tools/perf/util/python.c create mode 100644 tools/perf/util/setup.py create mode 100644 tools/perf/util/strfilter.c create mode 100644 tools/perf/util/strfilter.h create mode 100644 tools/perf/util/thread_map.c create mode 100644 tools/perf/util/thread_map.h create mode 100644 tools/perf/util/top.c create mode 100644 tools/perf/util/top.h create mode 100644 tools/perf/util/ui/browsers/top.c create mode 100644 tools/perf/util/ui/ui.h
[ ... 650K patch file omitted ... ]