Skip to content
  • Linus Torvalds's avatar
    Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7f4eb0a6
    Linus Torvalds authored
    Pull perf updates from Ingo Molnar:
     "On the kernel side the main changes in this cycle were:
    
       - Add Intel Kaby Lake CPU support (Srinivas Pandruvada)
    
       - AMD uncore driver updates for fam17 (Janakarajan Natarajan)
    
       - Intel/PT updates and core events optimizations and cleanups
         (Alexander Shishkin)
    
       - cgroups events fixes (David Carrillo-Cisneros)
    
       - kprobes improvements (Masami Hiramatsu)
    
       - ... plus misc fixes and updates.
    
      On the tooling side the main changes were:
    
       - Support clang build in tools/{perf,lib/{bpf,traceevent,api}} with
         CC=clang, to, for instance, take advantage of better warnings
         (Arnaldo Carvalho de Melo):
    
       - Introduce the 'delta-abs' 'perf diff' compute method, that orders
         the histogram entries by the absolute value of the percentage delta
         for a function in two perf.data files, i.e. the functions that
         changed the most (increase or decrease in samples) comes first
         (Namhyung Kim)
    
       - Add support for parsing Intel uncore vendor event files and add
         uncore vendor events for the Intel server processors (Haswell,
         Broadwell, IvyBridge), Xeon Phi (Knights Landing) and Broadwell DE
         (Andi Kleen)
    
       - Introduce 'perf ftrace' a perf front end to the kernel's ftrace
         function and function_graph tracer, defaulting to the
         "function_graph" tracer, more work will be done in reviving this
         effort, forward porting it from its initial patch submission
         (Namhyung Kim)
    
       - Add 'e' and 'c' hotkeys to expand/collapse call chains for a single
         hist entry in the 'perf report' and 'perf top' TUI (Jiri Olsa)
    
       - Account thread wait time (off CPU time) separately: sleep, iowait
         and preempt, based on the prev_state of the last event, show the
         breakdown when using "perf sched timehist --state" (Namhyumg Kim)
    
       - Add more triggers to switch the output file (perf.data.TIMESTAMP).
    
         Now, in addition to switching to a different output file when
         receiving a SIGUSR2, one can also specify file size and time based
         triggers:
    
               perf record -a --switch-output=signal
    
         is equivalent to what we had before:
    
               perf record -a --switch-output
    
         While we can also ask for the file to be "sliced" by size, taking
         into account that that will happen only when we get woken up by the
         kernel, i.e. one has to take into account the --mmap-pages (the
         size of the perf mmap ring buffer):
    
               perf record -a --switch-output=2G
    
         will break the perf.data output into multiple files limited to 2GB
         of samples, right when generating the output.
    
         For time based samples, alert() will be used, so to have 1 minute
         limited perf.data output files:
    
              perf record -a --switch-output=1m
    
         (Jiri Olsa)
    
       - Improve 'perf trace' (Arnaldo Carvalho de Melo)
    
       - 'perf kallsyms' toy tool to look for extended symbol information on
         the running kernel and demonstrate the machine/thread/symbol APIs
         for use in other tools, such as 'perf probe' (Arnaldo Carvalho de
         Melo)
    
       - ... plus tons of other changes, see the shortlog and Git log for
         details"
    
    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (131 commits)
      perf tools: Add missing parse_events_error() prototype
      perf pmu: Fix check for unset alias->unit array
      perf tools: Be consistent on the type of map->symbols[] interator
      perf intel pt decoder: clang has no -Wno-override-init
      perf evsel: Do not put a variable sized type not at the end of a struct
      perf probe: Avoid accessing uninitialized 'map' variable
      perf tools: Do not put a variable sized type not at the end of a struct
      perf record: Do not put a variable sized type not at the end of a struct
      perf tests: Synthesize struct instead of using field after variable sized type
      perf bench numa: Make sure dprintf() is not defined
      Revert "perf bench futex: Sanitize numeric parameters"
      tools lib subcmd: Make it an error to pass a signed value to OPTION_UINTEGER
      tools: Set the maximum optimization level according to the compiler being used
      tools: Suppress request for warning options not existent in clang
      samples/bpf: Reset global variables
      samples/bpf: Ignore already processed ELF sections
      samples/bpf: Add missing header
      perf symbols: dso->name is an array, no need to check it against NULL
      perf tests record: No need to test an array against NULL
      perf symbols: No need to check if sym->name is NULL
      ...
    7f4eb0a6