All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Thomas Gleixner <tglx@linutronix.de>,
	Arnaldo Carvalho de Melo <acme@infradead.org>,
	Jiri Olsa <jolsa@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [GIT PULL] perf changes
Date: Mon, 11 Jan 2016 13:56:06 +0100	[thread overview]
Message-ID: <20160111125606.GA15298@gmail.com> (raw)

Linus,

Please pull the latest perf-core-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-for-linus

   # HEAD: 3eb9ede23bdd96e9ba60e2b4d4d17a7c35d58448 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Kernel side changes:

  - Intel Knights Landing support. (Harish Chegondi)

  - Intel Broadwell-EP uncore PMU support. (Kan Liang)

  - Core code improvements. (Peter Zijlstra.)

  - Event filter, LBR and PEBS fixes. (Stephane Eranian)

  - Enable cycles:pp on Intel Atom. (Stephane Eranian)

  - Add cycles:ppp support for Skylake. (Andi Kleen)

  - Various x86 NMI overhead optimizations. (Andi Kleen)

  - Intel PT enhancements. (Takao Indoh)

  - AMD cache events fix. (Vince Weaver)

Tons of tooling changes:

    - Show random perf tool tips in the 'perf report' bottom line (Namhyung Kim)

    - perf report now defaults to --group if the perf.data file has grouped events, try it with:

      # perf record -e '{cycles,instructions}' -a sleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 1.093 MB perf.data (1247 samples) ]
      # perf report
      # Samples: 1K of event 'anon group { cycles, instructions }'
      # Event count (approx.): 1955219195
      #
      #       Overhead  Command     Shared Object      Symbol

         2.86%   0.22%  swapper     [kernel.kallsyms]  [k] intel_idle
         1.05%   0.33%  firefox     libxul.so          [.] js::SetObjectElement
         1.05%   0.00%  kworker/0:3 [kernel.kallsyms]  [k] gen6_ring_get_seqno
         0.88%   0.17%  chrome      chrome             [.] 0x0000000000ee27ab
         0.65%   0.86%  firefox     libxul.so          [.] js::ValueToId<(js::AllowGC)1>
         0.64%   0.23%  JS Helper   libxul.so          [.] js::SplayTree<js::jit::LiveRange*, js::jit::LiveRange>::splay
         0.62%   1.27%  firefox     libxul.so          [.] js::GetIterator
         0.61%   1.74%  firefox     libxul.so          [.] js::NativeSetProperty
         0.61%   0.31%  firefox     libxul.so          [.] js::SetPropertyByDefining

      
     - Introduce the 'perf stat record/report' workflow:

        Generate perf.data files from 'perf stat', to tap into the scripting
        capabilities perf has instead of defining a 'perf stat' specific scripting
        support to calculate event ratios, etc. Simple example:

        $ perf stat record -e cycles usleep 1

         Performance counter stats for 'usleep 1':

               1,134,996      cycles

             0.000670644 seconds time elapsed

        $ perf stat report

         Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1':

               1,134,996      cycles

             0.000670644 seconds time elapsed

        $

        It generates PERF_RECORD_ userspace records to store the details:

        $ perf report -D | grep PERF_RECORD
        0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637
        0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535
        0x12a [0x40]: PERF_RECORD_STAT_CONFIG
        0x16a [0x30]: PERF_RECORD_STAT
        -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text
        0x1da [0x18]: PERF_RECORD_STAT_ROUND
        [acme@ssdandy linux]$

        An effort was made to make perf.data files generated like this to not
        generate cryptic messages when processed by older tools.

        The 'perf script' bits need rebasing, will go up later.

      - Make command line options always available, even when they
        depend on some feature being enabled, warning the user about
        use of such options (Wang Nan)

      - Support hw breakpoint events (mem:0xAddress) in the default output mode in
        'perf script' (Wang Nan)

      - Fixes and improvements for supporting annotating ARM binaries, support ARM
        call and jump instructions, more work needed to have arch specific stuff
        separated into tools/perf/arch/*/annotate/ (Russell King)

      - Add initial 'perf config' command, for now just with a --list command to the
        contents of the configuration file in use and a basic man page describing
        its format, commands for doing edits and detailed documentation are being
        reviewed and proof-read. (Taeung Song)

      - Allows BPF scriptlets specify arguments to be fetched using
        DWARF info, using a prologue generated at compile/build time (He Kuang, Wang Nan)

      - Allow attaching BPF scriptlets to module symbols (Wang Nan)

      - Allow attaching BPF scriptlets to userspace code using uprobe (Wang Nan)

      - BPF programs now can specify 'perf probe' tunables via its section name,
        separating key=val values using semicolons (Wang Nan)

    Testing some of these new BPF features:

      Use case: get callchains when receiving SSL packets, filter then in the
                kernel, at arbitrary place.

      # cat ssl.bpf.c
      #define SEC(NAME) __attribute__((section(NAME), used))

      struct pt_regs;

      SEC("func=__inet_lookup_established hnum")
      int func(struct pt_regs *ctx, int err, unsigned short port)
      {
              return err == 0 && port == 443;
      }

      char _license[] SEC("license") = "GPL";
      int  _version   SEC("version") = LINUX_VERSION_CODE;
      #
      # perf record -a -g -e ssl.bpf.c
      ^C[ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.787 MB perf.data (3 samples) ]
      # perf script | head -30
      swapper     0 [000] 58783.268118: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb
    	 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux)
    	 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux)
    	 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux)
    	 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    	 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    	 8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux)
    	 856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux)
    	 2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux)
    	 2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux)
    	 96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux)
    	 969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux)
    	 2dede5 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux)
    	 95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux)
    	1163ffa start_kernel ([kernel.vmlinux].init.text)
    	11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text)
    	1163623 x86_64_start_kernel ([kernel.vmlinux].init.text)

      qemu-system-x86  9178 [003] 58785.792417: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb
    	 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux)
    	 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux)
    	 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux)
    	 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    	 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    	 856660 netif_receive_skb_internal (/lib/modules/4.3.0+/build/vmlinux)
    	 8566ec netif_receive_skb_sk (/lib/modules/4.3.0+/build/vmlinux)
    	   430a br_handle_frame_finish ([bridge])
    	   48bc br_handle_frame ([bridge])
    	 855f44 __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    	 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
      #

        Use 'perf probe' various options to list functions, see what variables can
        be collected at any given point, experiment first collecting without a filter,
        then filter, use it together with 'perf trace', 'perf top', with or without
        callchains, if it explodes, please tell us!

      - Introduce a new callchain mode: "folded", that will list per line
        representations of all callchains for a give histogram entry, facilitating
        'perf report' output processing by other tools, such as Brendan Gregg's
        flamegraph tools (Namhyung Kim)

      E.g:

     # perf report | grep -v ^# | head
        18.37%     0.00%  swapper  [kernel.kallsyms]   [k] cpu_startup_entry
                        |
                        ---cpu_startup_entry
                           |
                           |--12.07%--start_secondary
                           |
                            --6.30%--rest_init
                                      start_kernel
                                      x86_64_start_reservations
                                      x86_64_start_kernel
      #

     Becomes, in "folded" mode:

     # perf report -g folded | grep -v ^# | head -5
         18.37%     0.00%  swapper [kernel.kallsyms]   [k] cpu_startup_entry
       12.07% cpu_startup_entry;start_secondary
        6.30% cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
         16.90%     0.00%  swapper [kernel.kallsyms]   [k] call_cpuidle
       11.23% call_cpuidle;cpu_startup_entry;start_secondary
        5.67% call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
         16.90%     0.00%  swapper [kernel.kallsyms]   [k] cpuidle_enter
       11.23% cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary
        5.67% cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
         15.12%     0.00%  swapper [kernel.kallsyms]   [k] cpuidle_enter_state
      #

       The user can also select one of "count", "period" or "percent" as the first column.

... and lots of infrastructure enhancements, plus fixes and other changes, 
features I failed to list - see the shortlog and the git log for details.

 Thanks,

	Ingo

-----{ shortlog and diffstat done manually }--------------->

Adrian Hunter (1):
      perf evlist: Make perf_evlist__open() open evsels with their cpus and threads (like perf record does)

Andi Kleen (14):
      x86: Add an inlined __copy_from_user_nmi() variant
      perf/x86: Optimize stack walk user accesses
      perf/x86: Add option to disable reading branch flags/cycles
      perf/x86: Handle multiple umask bits for BDW CYCLE_ACTIVITY.*
      perf/x86/intel: Fix __initconst declaration in the RAPL perf driver
      x86/headers: Don't include asm/processor.h in asm/atomic.h
      tracepoints: Move struct tracepoint to new tracepoint-defs.h header
      x86, tracing, perf: Add trace point for MSR accesses
      perf/x86: Remove old MSR perf tracing code
      perf evsel: Disable branch flags/cycles for --callgraph lbr
      perf/x86: Remove warning for zero PEBS status
      perf/x86: Allow zero PEBS status with only single active event
      perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake
      perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp

Arnaldo Carvalho de Melo (20):
      perf test: Fix build of BPF and LLVM on older glibc libraries
      tools: Adopt memdup() from tools/perf, moving it to tools/lib/string.c
      perf tests: Pass the subtest index to each test routine
      perf list: Add support for PERF_COUNT_SW_BPF_OUT
      perf list: Robustify event printing routine
      perf top: Do show usage message when failing to create cpu/thread maps
      Revert "perf tools: Improve setting of gcc debug option"
      perf tools: Use same signal handling strategy as 'record'
      perf test: Dump the stack when test segfaults when in verbose mode
      perf thread: Fix reference count initial state
      perf tests: No need to set attr.sample_freq in the perf time to TSC test
      perf evlist: Introduce perf_evlist__new_dummy constructor
      perf test: Use "dummy" events in the PERF_RECORD_ test
      perf test: No need for setting attr.sample_freq on the RECORD test
      perf python: Add missing files to binding link list
      perf tests: No need to set attr.sample_freq for tracking !PERF_RECORD_SAMPLE
      perf tests: Give a bit more information on the CQM test failure path
      tools lib: Move find_next_bit.c to tools/lib/
      tools lib: Sync tools/lib/find_bit.c with the kernel
      tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/

Ekaterina Tumanova (2):
      perf symbols: Refactor vmlinux_path__init() to ease path additions
      perf symbols: Add the path to vmlinux.debug

Harish Chegondi (3):
      perf/x86/intel: Add perf core PMU support for Intel Knights Landing
      perf/x86/intel/uncore: Remove hard coding of PMON box control MSR offset
      perf/x86/intel/uncore: Add Knights Landing uncore PMU support

He Kuang (3):
      perf bpf: Add prologue for BPF programs for fetching arguments
      bpf tools: Add helper function for updating bpf maps elements
      perf record: Support custom vmlinux path

Huang Rui (1):
      perf/x86/rapl: Use unified perf_event_sysfs_show instead of special interface

Ingo Molnar (18):
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge branch 'perf/urgent' into perf/core, to pick up fixes
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge branch 'perf/urgent' into perf/core, to pick up fixes
      perf tui: Change default selection background color to yellow
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'v4.4-rc5' into perf/core, to pick up fixes
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core
      Merge tag 'perf-core-for-mingo-2.1' of git://git.kernel.org/.../acme/linux into perf/core
      Merge branch 'perf/urgent' into perf/core, to make sure a cherry-picked commit does not create conflicts
      Merge tag 'perf-core-for-mingo-3' of git://git.kernel.org/.../acme/linux into perf/core
      Merge branch 'perf/urgent' into perf/core, to pick up fixes before applying new changes
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/.../acme/linux into perf/core

Jiri Olsa (92):
      perf callchain: Move initial entry call into get_entries function
      perf callchain: Add order support for libunwind DWARF unwinder
      perf test: Add callchain order setup for DWARF unwinder test
      perf callchain: Add order support for libdw DWARF unwinder
      perf callchain: Add missing parent_val initialization
      perf script: Remove default_scripting_ops
      perf build: Fix traceevent plugins build race
      perf script: Pass perf_script into process_event
      tools build: Use fixdep with OUTPUT path prefix
      perf stat: Clear sample_(type|period) for counting
      perf evlist: Display WEIGHT sample type bit
      perf test: 'unwind' test should create kernel maps
      perf test: Use machine__new_host in dwarf unwind test
      perf test: Use machine__new_host in mmap thread lookup test
      perf test: Use machine__new_host in mmap thread code reading test
      perf test: Fix cpus and thread maps reference in error path
      perf test: Prevent using bpf-output event in round trip name test
      perf test: Create kernel maps properly for hist entries test
      perf evsel: Use event maps directly in perf_evsel__enable
      perf evsel: Introduce disable() method
      perf evlist: Factor perf_evlist__(enable|disable) functions
      perf stat: Use perf_evlist__enable in handle_initial_delay
      perf stat: Create events as disabled
      perf stat: Move enable_on_exec setup under earlier code
      perf thread_map: Add thread_map user level event
      perf thread_map: Add thread_map event sythesize function
      perf thread_map: Add thread_map__new_event function
      perf thread_map: Add perf_event__fprintf_thread_map function
      perf cpu_map: Add cpu_map user level event
      perf cpu_map: Add cpu_map event synthesize function
      perf cpu_map: Add cpu_map__new_event function
      perf cpu_map: Add perf_event__fprintf_cpu_map function
      perf tools: Add stat config user level event
      perf tools: Add stat config event synthesize function
      perf tools: Add stat config event read function
      perf tools: Add stat user level event
      perf tools: Add stat event synthesize function
      perf tools: Add stat event read function
      perf tools: Add stat round user level event
      perf tools: Add stat round event synthesize function
      perf tools: Add stat events fprintf functions
      perf tools: Add event_update user level event
      perf tools: Add event_update event unit type
      perf tools: Add event_update event scale type
      perf tools: Add event_update event name type
      perf tools: Add event_update event cpus type
      perf tools: Add perf_event__fprintf_event_update function
      perf report: Display newly added events in raw dump
      perf tools: Introduce stat perf.data header feature
      perf stat record: Add record command
      perf stat record: Initialize record features
      perf stat record: Synthesize stat record data
      perf evlist: Export id_add_fd()
      perf stat record: Store events IDs in perf data file
      perf stat record: Add pipe support for record command
      perf stat record: Write stat events on record
      perf stat record: Write stat round events on record
      perf stat record: Do not allow record with multiple runs mode
      perf stat record: Synthesize event update events
      perf stat report: Add report command
      perf stat report: Process cpu/threads maps
      perf stat report: Process stat config event
      perf stat report: Add support to initialize aggr_map from file
      perf stat report: Move csv_sep initialization before report command
      perf stat report: Process stat and stat round events
      perf stat report: Process event update events
      perf stat report: Allow to override aggr_mode
      tools build feature: Fix feature_check_display_code typo
      tools build feature: Move dwarf post unwind choice output into perf
      tools build feature: Introduce feature_assign macro
      tools build feature: Use value assignment form for FEATURE-DUMP file
      perf build: Use FEATURE-DUMP in bpf subproject
      perf stat record: Keep sample_type 0 for pipe session
      perf script: Process cpu/threads maps
      perf script: Process stat config event
      perf script: Add process_stat/process_stat_interval scripting interface
      perf script: Add stat default handlers
      perf script: Add python support for stat events
      perf cpumap: Fix cpu conversion in cpu_map__from_entries
      perf script: Display stat events by default
      perf script: Add stat-cpi.py script
      perf tools: Do not show trace command if it's not compiled in
      perf script: Align event name properly
      perf tools: Include all tools/lib directory for tags/cscope/TAGS targets
      perf tools: Remove list entry from struct sort_entry
      perf tools: Add overhead/overhead_children keys defaults via string
      perf diff: Use perf_hpp__register_sort_field interface
      perf evlist: Remove perf_evlist__(enable|disable)_event functions
      perf unwind: Use find_map function in access_dso_mem
      perf unwind: Check for mmaps also in MAP__VARIABLE tree
      perf libdw: Check for mmaps also in MAP__VARIABLE tree
      perf record: Store data mmaps for dwarf unwind

Josh Poimboeuf (22):
      perf tools: Remove unused pager_use_color variable
      perf tools: Move term functions out of util.c
      perf tools: Save cmdline arguments earlier
      perf tools: Move cmd_version() to builtin-version.c
      perf build: Remove unnecessary line in Makefile.feature
      perf test: Add Build file to dependencies for llvm-src-*.c
      perf test: Remove tarpkg at end of test
      perf build: Fix 'make clean'
      perf build: Rename LIB_PATH -> API_PATH
      perf tools: Create pager.h
      perf tools: Remove check for unused PERF_PAGER_IN_USE
      perf tools: Move help_unknown_cmd() to its own file
      perf tools: Convert parse-options.c internal functions to static
      tools build: Fix feature Makefile issues with 'O='
      perf tools: Move strlcpy() from perf to tools/lib/string.c
      perf tools: Document the fact that parse_options*() may exit
      perf tools: Provide subcmd configuration at runtime
      perf tools: Remove subcmd dependencies on strbuf
      perf tools: Remove 'perf' from subcmd function and variable names
      perf tools: Finalize subcmd independence
      perf subcmd: Create subcmd library
      tools subcmd: Rename subcmd header include guards

Kan Liang (1):
      perf/x86/intel/uncore: Add Broadwell-EP uncore support

Kevin Hilman (1):
      tools: Fix selftests_install Makefile rule

Masami Hiramatsu (18):
      perf probe: Fix to free temporal Dwarf_Frame
      perf machine: Fix machine__findnew_module_map to put registered map
      perf machine: Fix machine__destroy_kernel_maps to drop vmlinux_maps references
      perf machine: Fix to destroy kernel maps when machine exits
      perf tools: Make perf_exec_path() always return malloc'd string
      perf tools: Fix to put new map after inserting to map_groups in dso__load_sym
      perf tools: Fix __dsos__addnew to put dso after adding it to the list
      perf tools: Fix machine__create_kernel_maps to put kernel dso refcount
      perf machine: Fix machine__findnew_module_map to put dso
      perf probe: Fix to free temporal Dwarf_Frame correctly
      perf tools: Fix map_groups__clone to put cloned map
      perf stat: Fix cmd_stat to release cpu_map
      perf hists: Fix hists_evsel to release hists
      perf tools: Fix maps__fixup_overlappings to put used maps
      perf machine: Fix machine.vmlinux_maps to make sure to clear the old one
      perf tools: Fix write_numa_topology to put cpu_map instead of free
      perf tools: Make perf_session__register_idle_thread drop the refcount
      perf symbols: Fix dso__load_sym to put dso

Michael Petlan (1):
      perf buildid-list: Show running kernel build id fix

Namhyung Kim (48):
      perf report: Support folded callchain mode on --stdio
      perf callchain: Abstract callchain print function
      perf callchain: Add count fields to struct callchain_node
      perf report: Add callchain value option
      perf hists browser: Factor out hist_browser__show_callchain_list()
      perf hists browser: Support flat callchains
      perf hists browser: Support folded callchains
      perf ui/gtk: Support flat callchains
      perf ui/gtk: Support folded callchains
      perf callchain: Honor hide_unresolved
      perf top: Fix freeze on --call-graph flat/folded
      perf report: Show error message when processing sample fails
      perf hists: Do not skip elided fields when processing samples
      perf hists browser: Update nr entries regardless of min percent
      perf annotate: Check argument before calling setup_browser()
      perf annotate: Delay UI browser setup after initialization is done
      perf kvm: Remove invocation of setup/exit_browser()
      perf report: Check argument before calling setup_browser()
      perf thread_map: Free strlist on constructor error path
      perf tools: Get rid of exit_browser() from usage_with_options()
      perf top: Delete half-processed hist entries when exit
      perf top: Do not convert address for perf_top__record_precise_ip()
      perf top: Access hists->lock only if needed
      perf top: Fix annotation on --stdio
      perf top: Cleanup condition in perf_top__record_precise_ip()
      perf test: Fix hist testcases when kptr_restrict is on
      perf record: Add record.build-id config option
      perf hist: Pass struct sample to __hists__add_entry()
      perf hist: Save raw_data/size for tracepoint events
      tools lib traceevent: Factor out and export print_event_field[s]()
      perf top: Create the evlist sooner
      perf tools: Pass evlist to setup_sorting()
      perf tools: Add dynamic sort key for tracepoint events
      perf tools: Try to show pretty printed output for dynamic sort keys
      perf tools: Add 'trace' sort key
      perf report/top: Add --raw-trace option
      perf tools: Support shortcuts for events in dynamic sort keys
      perf tools: Support '<event>.*' dynamic sort key
      perf tools: Skip dynamic fields not defined for current event
      perf tools: Add 'trace_fields' dynamic sort key
      perf tools: Make 'trace' or 'trace_fields' sort key default for tracepoint events
      perf tools: Add all matching dynamic sort keys for field name
      perf report: Add documentation for dynamic sort keys
      perf top: Decay periods in callchains
      perf report: Change default to use event group view
      perf hists: Export a couple of hist functions
      perf report: Show random usage tip on the help line
      perf evlist: Add --trace-fields option to show trace fields

Peter Zijlstra (2):
      perf/core: Collapse common IPI pattern
      perf/core: Collapse more IPI loops

Russell King (1):
      perf annotate: ARM support

Stephane Eranian (5):
      perf/x86: Fix filter_events() bug with event mappings
      perf/x86: Fix LBR related crashes on Intel Atom
      perf/x86: fix PEBS issues on Intel Atom/Core2
      perf/x86: Enable cycles:pp for Intel Atom
      perf pmu: fix alias->snapshot missing initialization bug

Steven Rostedt (1):
      tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines

Taeung Song (2):
      perf tools: Add 'perf config' command
      perf config: Add initial man page

Takao Indoh (2):
      perf/x86/intel/pt: Add interface to stop Intel PT logging
      perf, x86: Stop Intel PT before kdump starts

Vince Weaver (1):
      perf/x86/amd: Remove l1-dcache-stores event for AMD

Wang Nan (28):
      tools: Clone the kernel's strtobool function
      bpf tools: Load a program with different instances using preprocessor
      perf bpf: Add BPF_PROLOGUE config options for further patches
      perf bpf: Compile dwarf-regs.c if CONFIG_BPF_PROLOGUE is on
      perf bpf: Allow BPF program attach to uprobe events
      perf bpf: Allow attaching BPF programs to modules symbols
      perf bpf: Allow BPF program config probing options
      perf bpf: Generate prologue for BPF programs
      perf test: Test the BPF prologue adding infrastructure
      perf test: Fix 'perf test BPF' when it fails to find a suitable vmlinux
      perf bpf: Use same BPF program if arguments are identical
      perf test: Print result for each LLVM subtest
      perf test: Print result for each BPF subtest
      perf test: Mute test cases error messages if verbose == 0
      tools build: Clean CFLAGS and LDFLAGS for fixdep
      tools lib bpf: Don't do a feature check when cleaning
      perf machine: Adjust dso->long_name for offline module
      tools lib bpf: Collect map definition in bpf_object
      tools lib bpf: Extract and collect map names from BPF object file
      perf bpf: Rename bpf config to program config
      perf machine: Pass correct string to dso__adjust_kmod_long_name
      tools lib bpf: Check return value of strdup when reading map names
      tools lib bpf: Fetch map names from correct strtab
      perf data: Add u32_hex data type
      perf script: Add support for PERF_TYPE_BREAKPOINT
      perf tools: Clear struct machine during machine__init()
      perf tools: Make options always available, even if required libs not linked
      perf tools: Add missing headers in perf's MANIFEST

Yannick Brosseau (1):
      perf tools: Correctly identify anon_hugepage when generating map (v2)


 Documentation/trace/events-msr.txt                 |  37 ++
 Documentation/trace/postprocess/decode_msr.py      |  37 ++
 arch/x86/include/asm/atomic.h                      |   1 -
 arch/x86/include/asm/atomic64_32.h                 |   1 -
 arch/x86/include/asm/intel_pt.h                    |  10 +
 arch/x86/include/asm/msr-trace.h                   |  57 ++
 arch/x86/include/asm/msr.h                         |  31 +
 arch/x86/include/asm/uaccess.h                     |   9 +
 arch/x86/kernel/cpu/perf_event.c                   |  36 +-
 arch/x86/kernel/cpu/perf_event.h                   |  21 +-
 arch/x86/kernel/cpu/perf_event_amd.c               |   2 +-
 arch/x86/kernel/cpu/perf_event_intel.c             | 115 +++-
 arch/x86/kernel/cpu/perf_event_intel_ds.c          |  39 +-
 arch/x86/kernel/cpu/perf_event_intel_lbr.c         |  42 +-
 arch/x86/kernel/cpu/perf_event_intel_pt.c          |   9 +
 arch/x86/kernel/cpu/perf_event_intel_rapl.c        |  25 +-
 arch/x86/kernel/cpu/perf_event_intel_uncore.c      |  17 +
 arch/x86/kernel/cpu/perf_event_intel_uncore.h      |   3 +
 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c  |   2 +-
 .../x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 635 ++++++++++++++++++-
 arch/x86/kernel/crash.c                            |  11 +
 arch/x86/lib/msr.c                                 |  26 +
 include/linux/tracepoint-defs.h                    |  27 +
 include/linux/tracepoint.h                         |  16 +-
 include/uapi/linux/perf_event.h                    |   6 +
 kernel/events/core.c                               | 321 ++++------
 lib/atomic64_test.c                                |   4 +
 tools/Makefile                                     |   2 +-
 tools/build/Makefile                               |   2 +-
 tools/build/Makefile.feature                       |  44 +-
 tools/build/Makefile.include                       |   2 +-
 tools/build/feature/Makefile                       |  93 +--
 tools/{perf/util => }/include/linux/bitmap.h       |   2 +
 tools/include/linux/string.h                       |  15 +
 tools/{perf/util => lib}/bitmap.c                  |   0
 tools/lib/bpf/Makefile                             |  14 +
 tools/lib/bpf/bpf.c                                |  14 +
 tools/lib/bpf/bpf.h                                |   2 +
 tools/lib/bpf/libbpf.c                             | 412 ++++++++++---
 tools/lib/bpf/libbpf.h                             |  88 +++
 tools/lib/find_bit.c                               |  84 +++
 tools/lib/string.c                                 |  89 +++
 tools/lib/subcmd/Build                             |   7 +
 tools/lib/subcmd/Makefile                          |  48 ++
 tools/lib/subcmd/exec-cmd.c                        | 209 +++++++
 tools/lib/subcmd/exec-cmd.h                        |  16 +
 tools/{perf/util => lib/subcmd}/help.c             | 179 ++----
 tools/{perf/util => lib/subcmd}/help.h             |  13 +-
 tools/{perf/util => lib/subcmd}/pager.c            |  23 +-
 tools/lib/subcmd/pager.h                           |   9 +
 tools/{perf/util => lib/subcmd}/parse-options.c    | 250 ++++++--
 tools/{perf/util => lib/subcmd}/parse-options.h    |  26 +-
 tools/{perf/util => lib/subcmd}/run-command.c      |  24 +-
 tools/{perf/util => lib/subcmd}/run-command.h      |  12 +-
 tools/{perf/util => lib/subcmd}/sigchain.c         |   3 +-
 tools/{perf/util => lib/subcmd}/sigchain.h         |   6 +-
 tools/lib/subcmd/subcmd-config.c                   |  11 +
 tools/lib/subcmd/subcmd-config.h                   |  14 +
 tools/lib/subcmd/subcmd-util.h                     |  91 +++
 tools/lib/traceevent/event-parse.c                 | 134 ++--
 tools/lib/traceevent/event-parse.h                 |   4 +
 tools/lib/util/find_next_bit.c                     |  89 ---
 tools/perf/Build                                   |   8 +-
 tools/perf/Documentation/perf-config.txt           | 103 ++++
 tools/perf/Documentation/perf-evlist.txt           |   3 +
 tools/perf/Documentation/perf-record.txt           |  24 +-
 tools/perf/Documentation/perf-report.txt           |  41 +-
 tools/perf/Documentation/perf-stat.txt             |  34 ++
 tools/perf/Documentation/perf-top.txt              |   3 +
 tools/perf/Documentation/tips.txt                  |  14 +
 tools/perf/MANIFEST                                |   7 +-
 tools/perf/Makefile.perf                           |  44 +-
 tools/perf/arch/x86/include/arch-tests.h           |   8 +-
 tools/perf/arch/x86/tests/insn-x86.c               |   2 +-
 tools/perf/arch/x86/tests/intel-cqm.c              |   4 +-
 tools/perf/arch/x86/tests/perf-time-to-tsc.c       |   3 +-
 tools/perf/arch/x86/tests/rdpmc.c                  |   2 +-
 tools/perf/arch/x86/util/Build                     |   1 +
 tools/perf/arch/x86/util/intel-bts.c               |   4 +-
 tools/perf/arch/x86/util/intel-pt.c                |   6 +-
 tools/perf/bench/futex-hash.c                      |   2 +-
 tools/perf/bench/futex-lock-pi.c                   |   2 +-
 tools/perf/bench/futex-requeue.c                   |   2 +-
 tools/perf/bench/futex-wake-parallel.c             |   2 +-
 tools/perf/bench/futex-wake.c                      |   2 +-
 tools/perf/bench/mem-functions.c                   |   2 +-
 tools/perf/bench/numa.c                            |   2 +-
 tools/perf/bench/sched-messaging.c                 |   2 +-
 tools/perf/bench/sched-pipe.c                      |   2 +-
 tools/perf/builtin-annotate.c                      |  44 +-
 tools/perf/builtin-bench.c                         |   2 +-
 tools/perf/builtin-buildid-cache.c                 |   2 +-
 tools/perf/builtin-buildid-list.c                  |   4 +-
 tools/perf/builtin-config.c                        |  66 ++
 tools/perf/builtin-data.c                          |   2 +-
 tools/perf/builtin-diff.c                          |  15 +-
 tools/perf/builtin-evlist.c                        |  13 +-
 tools/perf/builtin-help.c                          |  10 +-
 tools/perf/builtin-inject.c                        |   2 +-
 tools/perf/builtin-kmem.c                          |   2 +-
 tools/perf/builtin-kvm.c                           |   5 +-
 tools/perf/builtin-list.c                          |   2 +-
 tools/perf/builtin-lock.c                          |   2 +-
 tools/perf/builtin-mem.c                           |   2 +-
 tools/perf/builtin-probe.c                         |  17 +-
 tools/perf/builtin-record.c                        |  48 +-
 tools/perf/builtin-report.c                        |  52 +-
 tools/perf/builtin-sched.c                         |   2 +-
 tools/perf/builtin-script.c                        | 245 ++++++--
 tools/perf/builtin-stat.c                          | 679 ++++++++++++++++++++-
 tools/perf/builtin-timechart.c                     |   2 +-
 tools/perf/builtin-top.c                           |  75 ++-
 tools/perf/builtin-trace.c                         |   4 +-
 tools/perf/builtin-version.c                       |  10 +
 tools/perf/builtin.h                               |   1 +
 tools/perf/command-list.txt                        |   3 +-
 tools/perf/config/Makefile                         |  24 +-
 tools/perf/config/utilities.mak                    |  19 -
 tools/perf/perf.c                                  |  24 +-
 tools/perf/scripts/python/stat-cpi.py              |  77 +++
 tools/perf/tests/.gitignore                        |   1 +
 tools/perf/tests/Build                             |  16 +-
 tools/perf/tests/attr.c                            |   6 +-
 tools/perf/tests/bp_signal.c                       |   2 +-
 tools/perf/tests/bp_signal_overflow.c              |   2 +-
 tools/perf/tests/bpf-script-test-prologue.c        |  35 ++
 tools/perf/tests/bpf.c                             |  93 ++-
 tools/perf/tests/builtin-test.c                    | 141 ++++-
 tools/perf/tests/code-reading.c                    |  16 +-
 tools/perf/tests/cpumap.c                          |  88 +++
 tools/perf/tests/dso-data.c                        |   6 +-
 tools/perf/tests/dwarf-unwind.c                    |  37 +-
 tools/perf/tests/event_update.c                    | 117 ++++
 tools/perf/tests/evsel-roundtrip-name.c            |   5 +-
 tools/perf/tests/evsel-tp-sched.c                  |   2 +-
 tools/perf/tests/fdarray.c                         |   4 +-
 tools/perf/tests/hists_common.c                    |   6 +-
 tools/perf/tests/hists_cumulate.c                  |  10 +-
 tools/perf/tests/hists_filter.c                    |   4 +-
 tools/perf/tests/hists_link.c                      |  10 +-
 tools/perf/tests/hists_output.c                    |  12 +-
 tools/perf/tests/keep-tracking.c                   |   5 +-
 tools/perf/tests/kmod-path.c                       |   2 +-
 tools/perf/tests/llvm.c                            |  75 ++-
 tools/perf/tests/llvm.h                            |   2 +
 tools/perf/tests/make                              |   3 +-
 tools/perf/tests/mmap-basic.c                      |   2 +-
 tools/perf/tests/mmap-thread-lookup.c              |   8 +-
 tools/perf/tests/openat-syscall-all-cpus.c         |   2 +-
 tools/perf/tests/openat-syscall-tp-fields.c        |   2 +-
 tools/perf/tests/openat-syscall.c                  |   2 +-
 tools/perf/tests/parse-events.c                    |   2 +-
 tools/perf/tests/parse-no-sample-id-all.c          |   2 +-
 tools/perf/tests/perf-record.c                     |   8 +-
 tools/perf/tests/pmu.c                             |   2 +-
 tools/perf/tests/python-use.c                      |   3 +-
 tools/perf/tests/sample-parsing.c                  |   2 +-
 tools/perf/tests/stat.c                            | 111 ++++
 tools/perf/tests/sw-clock.c                        |   2 +-
 tools/perf/tests/switch-tracking.c                 |   8 +-
 tools/perf/tests/task-exit.c                       |   2 +-
 tools/perf/tests/tests.h                           |  95 +--
 tools/perf/tests/thread-map.c                      |  45 +-
 tools/perf/tests/thread-mg-share.c                 |   2 +-
 tools/perf/tests/topology.c                        |   2 +-
 tools/perf/tests/vmlinux-kallsyms.c                |   2 +-
 tools/perf/ui/browser.c                            |   2 +-
 tools/perf/ui/browsers/hists.c                     | 335 +++++++++-
 tools/perf/ui/gtk/hists.c                          | 152 ++++-
 tools/perf/ui/hist.c                               |  14 +-
 tools/perf/ui/stdio/hist.c                         | 100 ++-
 tools/perf/util/Build                              |  28 +-
 tools/perf/util/annotate.c                         |  23 +
 tools/perf/util/auxtrace.c                         |   2 +-
 tools/perf/util/bpf-loader.c                       | 433 ++++++++++++-
 tools/perf/util/bpf-loader.h                       |   4 +
 tools/perf/util/bpf-prologue.c                     | 455 ++++++++++++++
 tools/perf/util/bpf-prologue.h                     |  34 ++
 tools/perf/util/build-id.c                         |   2 +-
 tools/perf/util/cache.h                            |  14 +-
 tools/perf/util/callchain.c                        | 164 ++++-
 tools/perf/util/callchain.h                        |  30 +-
 tools/perf/util/cgroup.c                           |   2 +-
 tools/perf/util/color.c                            |   2 +-
 tools/perf/util/config.c                           |   2 +-
 tools/perf/util/cpumap.c                           |  51 ++
 tools/perf/util/cpumap.h                           |   1 +
 tools/perf/util/data-convert-bt.c                  |   2 +
 tools/perf/util/dso.c                              |   2 +
 tools/perf/util/env.c                              |   9 -
 tools/perf/util/environment.c                      |   8 -
 tools/perf/util/event.c                            | 308 ++++++++++
 tools/perf/util/event.h                            | 150 ++++-
 tools/perf/util/evlist.c                           | 112 ++--
 tools/perf/util/evlist.h                           |  10 +-
 tools/perf/util/evsel.c                            |  53 +-
 tools/perf/util/evsel.h                            |   4 +-
 tools/perf/util/exec_cmd.c                         | 148 -----
 tools/perf/util/exec_cmd.h                         |  12 -
 tools/perf/util/generate-cmdlist.sh                |  15 +
 tools/perf/util/header.c                           | 207 ++++++-
 tools/perf/util/header.h                           |  17 +
 tools/perf/util/help-unknown-cmd.c                 | 103 ++++
 tools/perf/util/help-unknown-cmd.h                 |   0
 tools/perf/util/hist.c                             | 118 +++-
 tools/perf/util/hist.h                             |  24 +-
 tools/perf/util/include/linux/string.h             |   3 -
 tools/perf/util/intel-pt.c                         |   4 +-
 tools/perf/util/machine.c                          |  74 ++-
 tools/perf/util/map.c                              |   7 +-
 tools/perf/util/parse-branch-options.c             |   2 +-
 tools/perf/util/parse-events.c                     |  10 +-
 tools/perf/util/parse-regs-options.c               |   2 +-
 tools/perf/util/path.c                             |  18 -
 tools/perf/util/pmu.c                              |   1 +
 tools/perf/util/probe-event.c                      |   7 +-
 tools/perf/util/probe-finder.c                     |   6 +-
 tools/perf/util/python-ext-sources                 |   2 +
 .../util/scripting-engines/trace-event-python.c    | 115 +++-
 tools/perf/util/session.c                          | 200 +++++-
 tools/perf/util/session.h                          |   2 +-
 tools/perf/util/sort.c                             | 601 +++++++++++++++++-
 tools/perf/util/sort.h                             |  14 +-
 tools/perf/util/stat.c                             |  62 ++
 tools/perf/util/stat.h                             |  10 +
 tools/perf/util/string.c                           |  16 -
 tools/perf/util/symbol-elf.c                       |   9 +-
 tools/perf/util/symbol.c                           |  66 +-
 tools/perf/util/symbol.h                           |   4 +-
 tools/perf/util/term.c                             |  35 ++
 tools/perf/util/term.h                             |  10 +
 tools/perf/util/thread.c                           |  10 +-
 tools/perf/util/thread_map.c                       |  28 +
 tools/perf/util/thread_map.h                       |   3 +
 tools/perf/util/tool.h                             |   8 +-
 tools/perf/util/trace-event.h                      |   4 +
 tools/perf/util/unwind-libdw.c                     |  63 +-
 tools/perf/util/unwind-libdw.h                     |   2 +
 tools/perf/util/unwind-libunwind.c                 |  80 ++-
 tools/perf/util/util.c                             |  67 +-
 tools/perf/util/util.h                             |  20 +-
 241 files changed, 9168 insertions(+), 1908 deletions(-)

             reply	other threads:[~2016-01-11 12:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-11 12:56 Ingo Molnar [this message]
2016-01-11 23:07 ` [GIT PULL] perf changes Stephen Rothwell
  -- strict thread matches above, loose matches on Subject: below --
2010-05-24 19:25 Ingo Molnar
2010-05-25  0:22 ` Paul Mackerras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160111125606.GA15298@gmail.com \
    --to=mingo@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.