tree bad2e6634e57c9d0d24a67086620ffca86dc5313
parent 889fac6d67d46a5e781c08fb26fec9016db1c307
parent 99e87f7bb7268cf644add87130590966fd5d0d17
author Ingo Molnar <mingo@kernel.org> 1460530670 +0200
committer Ingo Molnar <mingo@kernel.org> 1460530670 +0200
mergetag object 99e87f7bb7268cf644add87130590966fd5d0d17
 type commit
 tag perf-core-for-mingo-20160408
 tagger Arnaldo Carvalho de Melo <acme@redhat.com> 1460121091 -0300
 
 perf/core improvements and fixes:
 
 User visible:
 
 - Beautify more syscall arguments in 'perf trace', using the type column in
   tracepoint /format fields to attach, for instance, a pid_t resolver to the
   thread COMM, also attach a mode_t beautifier in the same fashion
   (Arnaldo Carvalho de Melo)
 
 - Build the syscall table id <-> name resolver using the same .tbl file
   used in the kernel to generate headers, to avoid the delay in getting
   new syscalls supported in the audit-libs external dependency, done so
   far only for x86_64 (Arnaldo Carvalho de Melo)
 
 - Improve the documentation of event specifications (Andi Kleen)
 
 - Process update events in 'perf script', fixing up this use case:
 
     # perf stat -a -I 1000 -e cycles record | perf script -s script.py
 
 - Shared object symbol adjustment fixes, fixing symbol resolution in
   Android (Wang Nan)
 
 Infrastructure:
 
 - Add dedicated unwind addr_space member into thread struct, to allow
   tools to use thread->priv, noticed while working on having callchains
   in 'perf trace' (Jiri Olsa)
 
 Build fixes:
 
 - Fix the build in Ubuntu 12.04 (Arnaldo Carvalho de Melo, Vinson Lee)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJXB646AAoJENZQFvNTUqpAvroP/1BE/cViqrM3v351qkPDh2Dw
 Mat7ZDTDUxsZ2XqzJQTsRiao1oi2ALF1Kyh3UzgRLqsDuahQHhwpm4M9pegtgDsu
 I77yGGFVw/rdZLdJGHrGXE8HeOrvW6NKk7HqmnMlwpLpNkMfPVpqlq82/rUHcA46
 F98/7DTG/PNstbIxuCgV3fI1aB8/v+lVGLw+S7vnf/Xuba4MNdqTQNEzkXaAubzv
 c2I6YBwSO3v+oVgu3Vr679gGxNx3P/iGkgIb2WqJxezNiZUVdh4McJ4Dg3/mm5hj
 Q1scLuW2MGXy3WaQW4i7sjoAwlOX+4kkUO8l5yk67GXKLwstnx4SWJNyeupMxDcp
 UKl2mPcZIPaCPjR7aFnR6Xvxv71QkEEgeQlvR1gwAZeONBtZ9kOFD2jJfK5tbwyS
 GG3rF5dB4KJqjr31tDcGYxuti4ggiJIvi/ujyrKvJUl7JChkJVDbqENOK35qistR
 iHV1nSEQM1O2+NNaH4Ise9WYjQOH5tERc9L9XOpaR9x6KDsz1TR7bqqBu8HdASJs
 v9x02RaPjDc/x3MUrhZ1sEDOqEqLO2eHhq1stnFTz4x9r7k+YPySS43FtnARB1CZ
 H8Pc21gyxt1pzO0ogvnLoji1715+DaSaEWas+vrfzJ1cJ4Tf6v5zYEuOfYJhDQrC
 dK75s0KDR6DCO/cwUEr1
 =AF/P
 -----END PGP SIGNATURE-----

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

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

User visible changes:

- Beautify more syscall arguments in 'perf trace', using the type column in
  tracepoint /format fields to attach, for instance, a pid_t resolver to the
  thread COMM, also attach a mode_t beautifier in the same fashion
  (Arnaldo Carvalho de Melo)

- Build the syscall table id <-> name resolver using the same .tbl file
  used in the kernel to generate headers, to avoid the delay in getting
  new syscalls supported in the audit-libs external dependency, done so
  far only for x86_64 (Arnaldo Carvalho de Melo)

- Improve the documentation of event specifications (Andi Kleen)

- Process update events in 'perf script', fixing up this use case:

    # perf stat -a -I 1000 -e cycles record | perf script -s script.py

- Shared object symbol adjustment fixes, fixing symbol resolution in
  Android (Wang Nan)

Infrastructure changes:

- Add dedicated unwind addr_space member into thread struct, to allow
  tools to use thread->priv, noticed while working on having callchains
  in 'perf trace' (Jiri Olsa)

Build fixes:

- Fix the build in Ubuntu 12.04 (Arnaldo Carvalho de Melo, Vinson Lee)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
