• Linus Torvalds's avatar
    Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9326657a
    Linus Torvalds authored
    Pull perf updates from Ingo Molnar:
     "Kernel side changes:
       - Add Intel RAPL energy counter support (Stephane Eranian)
       - Clean up uprobes (Oleg Nesterov)
       - Optimize ring-buffer writes (Peter Zijlstra)
      Tooling side changes, user visible:
       - 'perf diff':
         - Add column colouring improvements (Ramkumar Ramachandra)
      - 'perf kvm':
         - Add guest related improvements, including allowing to specify a
           directory with guest specific /proc information (Dongsheng Yang)
         - Add shell completion support (Ramkumar Ramachandra)
         - Add '-v' option (Dongsheng Yang)
         - Support --guestmount (Dongsheng Yang)
       - 'perf probe':
         - Support showing source code, asking for variables to be collected
           at probe time and other 'perf probe' operations that use DWARF
           This supports only binaries with debugging information at this
           time, detached debuginfo (aka debuginfo packages) support should
           come in later patches (Masami Hiramatsu)
       - 'perf record':
         - Rename --no-delay option to --no-buffering, better reflecting its
           purpose and freeing up '--delay' to take the place of
           '--initial-delay', so that 'record' and 'stat' are consistent
           (Arnaldo Carvalho de Melo)
         - Default the -t/--thread option to no inheritance (Adrian Hunter)
         - Make per-cpu mmaps the default (Adrian Hunter)
       - 'perf report':
         - Improve callchain processing performance (Frederic Weisbecker)
         - Retain bfd reference to lookup source line numbers, greatly
           optimizing, among other use cases, 'perf report -s srcline'
           (Adrian Hunter)
         - Improve callchain processing performance even more (Namhyung Kim)
         - Add a perf.data file header window in the 'perf report' TUI,
           associated with the 'i' hotkey, providing a counterpart to the
           --header option in the stdio UI (Namhyung Kim)
       - 'perf script':
         - Add an option in 'perf script' to print the source line number
           (Adrian Hunter)
         - Add --header/--header-only options to 'script' and 'report', the
           default is not tho show the header info, but as this has been the
           default for some time, leave a single line explaining how to
           obtain that information (Jiri Olsa)
         - Add options to show comm, fork, exit and mmap PERF_RECORD_ events
           (Namhyung Kim)
         - Print callchains and symbols if they exist (David Ahern)
       - 'perf timechart'
         - Add backtrace support to CPU info
         - Print pid along the name
         - Add support for CPU topology
         - Add new option --highlight'ing threads, be it by name or, if a
           numeric value is provided, that run more than given duration
           (Stanislav Fomichev)
       - 'perf top':
         - Make 'perf top -g' refer to callchains, for consistency with
           other tools (David Ahern)
       - 'perf trace':
         - Handle old kernels where the "raw_syscalls" tracepoints were
           called plain "syscalls" (David Ahern)
         - Remove thread summary coloring, by Pekka Enberg.
         - Honour -m option in 'trace', the tool was offering the option to
           set the mmap size, but wasn't using it when doing the actual mmap
           on the events file descriptors (Jiri Olsa)
       - generic:
         - Backport libtraceevent plugin support (trace-cmd repository, with
           plugins for jbd2, hrtimer, kmem, kvm, mac80211, sched_switch,
           function, xen, scsi, cfg80211 (Jiri Olsa)
         - Print session information only if --stdio is given (Namhyung Kim)
      Tooling side changes, developer visible (plumbing):
       - Improve 'perf probe' exit path, release resources (Masami
       - Improve libtraceevent plugins exit path, allowing the registering
         of an unregister handler to be called at exit time (Namhyung Kim)
       - Add an alias to the build test makefile (make -C tools/perf
         build-test) (Namhyung Kim)
       - Get rid of die() and friends (good riddance!) in libtraceevent
         (Namhyung Kim)
       - Fix cross build problems related to pkgconfig and CROSS_COMPILE not
         being propagated to the feature tests, leading to features being
         tested in the host and then being enabled on the target (Mark
       - Improve forked workload error reporting by sending the errno in the
         signal data queueing integer field, using sigqueue and by doing the
         signal setup in the evlist methods, removing open coded equivalents
         in various tools (Arnaldo Carvalho de Melo)
       - Do more auto exit cleanup chores in the 'evlist' destructor, so
         that the tools don't have to all do that sequence (Arnaldo Carvalho
         de Melo)
       - Pack 'struct perf_session_env' and 'struct trace' (Arnaldo Carvalho
         de Melo)
       - Add test for building detached source tarballs (Arnaldo Carvalho de
       - Move some header files (tools/perf/ to tools/include/ to make them
         available to other tools/ dwelling codebases (Namhyung Kim)
       - Move logic to warn about kptr_restrict'ed kernels to separate
         function in 'report' (Arnaldo Carvalho de Melo)
       - Move hist browser selection code to separate function (Arnaldo
         Carvalho de Melo)
       - Move histogram entries collapsing to separate function (Arnaldo
         Carvalho de Melo)
       - Introduce evlist__for_each() & friends (Arnaldo Carvalho de Melo)
       - Automate setup of FEATURE_CHECK_(C|LD)FLAGS-all variables (Jiri
       - Move arch setup into seprate Makefile (Jiri Olsa)
       - Make libtraceevent install target quieter (Jiri Olsa)
       - Make tests/make output more compact (Jiri Olsa)
       - Ignore generated files in feature-checks (Chunwei Chen)
       - Introduce pevent_filter_strerror() in libtraceevent, similar in
         purpose to libc's strerror() function (Namhyung Kim)
       - Use perf_data_file methods to write output file in 'record' and
         'inject' (Jiri Olsa)
       - Use pr_*() functions where applicable in 'report' (Namhyumg Kim)
       - Add 'machine' 'addr_location' struct to have full picture (machine,
         thread, map, symbol, addr) for a (partially) resolved address,
         reducing function signatures (Arnaldo Carvalho de Melo)
       - Reduce code duplication in the histogram entry creation/insertion
         (Arnaldo Carvalho de Melo)
       - Auto allocate annotation histogram data structures (Arnaldo
         Carvalho de Melo)
       - No need to test against NULL before calling free, also set freed
         memory in struct pointers to NULL, to help fixing use after free
         bugs (Arnaldo Carvalho de Melo)
       - Rename some struct DSO binary_type related members and methods, to
         clarify its purpose and need for differentiation (symtab_type, ie
         one is about the files .text, CFI, etc, i.e.  its binary contents,
         and the other is about where the symbol table came from (Arnaldo
         Carvalho de Melo)
       - Convert to new topic libraries, starting with an API one (sysfs,
         debugfs, etc), renaming liblk in the process (Borislav Petkov)
       - Get rid of some more panic() like error handling in libtraceevent.
         (Namhyung Kim)
       - Get rid of panic() like calls in libtraceevent (Namyung Kim)
       - Start carving out symbol parsing routines (perf, just moving
         routines to topic files in tools/lib/symbol/, tools that want to
         use it need to integrate it directly, ie no
         tools/lib/symbol/Makefile is provided (Arnaldo Carvalho de Melo)
       - Assorted refactoring patches, moving code around and adding utility
         evlist methods that will be used in the IPT patchset (Adrian
       - Assorted mmap_pages handling fixes (Adrian Hunter)
       - Several man pages typo fixes (Dongsheng Yang)
       - Get rid of several die() calls in libtraceevent (Namhyung Kim)
       - Use basename() in a more robust way, to avoid problems related to
         different system library implementations for that function
         (Stephane Eranian)
       - Remove open coded management of short_name_allocated member (Adrian
       - Several cleanups in the "dso" methods, constifying some parameters
         and renaming some fields to clarify its purpose (Arnaldo Carvalho
         de Melo)
       - Add per-feature check flags, fixing libunwind related build
         problems on some architectures (Jean Pihet)
       - Do not disable source line lookup just because of one failure.
         (Adrian Hunter)
       - Several 'perf kvm' man page corrections (Dongsheng Yang)
       - Correct the message in feature-libnuma checking, swowing the right
         devel package names for various distros (Dongsheng Yang)
       - Polish 'readn()' function and introduce its counterpart,
         'writen()' (Jiri Olsa)
       - Start moving timechart state from global variables to a 'perf_tool'
         derived 'timechart' struct (Arnaldo Carvalho de Melo)
      ... and lots of fixes and improvements I forgot to list"
    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (282 commits)
      perf tools: Remove unnecessary callchain cursor state restore on unmatch
      perf callchain: Spare double comparison of callchain first entry
      perf tools: Do proper comm override error handling
      perf symbols: Export elf_section_by_name and reuse
      perf probe: Release all dynamically allocated parameters
      perf probe: Release allocated probe_trace_event if failed
      perf tools: Add 'build-test' make target
      tools lib traceevent: Unregister handler when xen plugin is unloaded
      tools lib traceevent: Unregister handler when scsi plugin is unloaded
      tools lib traceevent: Unregister handler when jbd2 plugin is is unloaded
      tools lib traceevent: Unregister handler when cfg80211 plugin is unloaded
      tools lib traceevent: Unregister handler when mac80211 plugin is unloaded
      tools lib traceevent: Unregister handler when sched_switch plugin is unloaded
      tools lib traceevent: Unregister handler when kvm plugin is unloaded
      tools lib traceevent: Unregister handler when kmem plugin is unloaded
      tools lib traceevent: Unregister handler when hrtimer plugin is unloaded
      tools lib traceevent: Unregister handler when function plugin is unloaded
      tools lib traceevent: Add pevent_unregister_print_function()
      tools lib traceevent: Add pevent_unregister_event_handler()
      tools lib traceevent: fix pointer-integer size mismatch
Last commit
Last update
cgroup Loading commit data...
firewire Loading commit data...
hv Loading commit data...
include Loading commit data...
lguest Loading commit data...
lib Loading commit data...
net Loading commit data...
nfsd Loading commit data...
perf Loading commit data...
power Loading commit data...
scripts Loading commit data...
testing Loading commit data...
thermal/tmon Loading commit data...
usb Loading commit data...
virtio Loading commit data...
vm Loading commit data...
Makefile Loading commit data...