perf/core improvements and fixes:

- Move non-TUI specific annotation routines out of the TUI browser so
   that it can be used in other UIs, and to demonstrate that introduce
   a 'perf annotate --stdio2' option that will apply those formatting
   routines to provide a non-interactive annotation mode (Arnaldo Carvalho de Melo)
 
 - Add 'P' hotkey to the annotation TUI, so dump the current annotated
   symbol to a file, easing report thru e-mail, by getting rid of the
   spaces + right hand side scrollbar chars (Arnaldo Carvalho de Melo)
 
 - Support --ignore-vmlinux to 'perf report' and 'perf annotate', that
   was already present in 'perf top', to use /proc/{kcore,kallsyms},
   allowing to see what is in fact running (patched stuff, alternatives,
   ftrace, etc), not the initial state of the kernel (vmlinux) (Arnaldo Carvalho de Melo)
 
 - Support 'jump' instructions to a different function, treating them
   as 'call' instructions (Arnaldo Carvalho de Melo)
 
 - Fix some jump artifacts when using vmlinux + ASM functions, where
   the ELF symtab for instance, for entry_SYSCALL_64 includes that and
   what comes after the 'syscall_return_via_sysret' label, but the
   objdump -dS prints the jump targets + offsets using the
   syscall_return_via_sysret address, which was confusing 'perf annotate'.
   See the cset comments for further info (Arnaldo Carvalho de Melo)
 
 - Report error from dwfl_attach_state() in the unwind code (Martin Vuille)
 
 - Reference Py_None before returning it in the python extension (Petr Machata)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEELb9bqkb7Te0zijNb1lAW81NSqkAFAlq1YC8ACgkQ1lAW81NS
 qkDgThAAtnpGECjgPFJMqtLQeaW98dWxNz2c/DShWcLClESaKKHf8H0ImEz+mkG3
 ehOg5VxfvutzBP51MmMTGNuS5vvFBhE9Z0+chqAHfIfLL2yxfbBKNQln82ja3QKd
 0EPauXbCt55un4vQBEQNr3uD6OMDIBmRBLshdMGFqzRBY8LvbO33hmjlBVjzRd+d
 FSdCA0p4C+YSSeGHi9496Ru4Mb5Pch5rxzBSDCw3/+Sk1Ixxe2qSyWS5iCFCrmrq
 33+Z8+QNRPBn3D+SRTqTXplSsexe2PgfGaktvpYvPY2lEq3slhIf7wGLWpPSkP6z
 520PZOdWm4bSfklSHl3Qa2XaJRKumkZxKGBFjbWZWcPuwa1+6ZtkCIaJz498hHDd
 xS3pVjBWQyU7NVqdTq78rCWT0mfgtpXxgblm/38lT7GM+5Z3HjqUgzMjt6TvNqaM
 lvGz3u9EgtkCRlOtE4XRfxFTdpeIKdDdPjqmtGsnRxp2Cfr3O/r7xxzLWbIUfG8C
 vAjkPHNB2bxt7eXiP1z/YDJnvlBvQCWIILYgRRmlDCtCvY7DjNxhwirBvfAx8I1p
 HICyC59+IJqVMlMjSPnON63pS2P6uYIW1CF0yEno61dTVVyF5qugRQ8cwEwB7TYi
 jRTU3C6N8azqmPUGJR5Sd8y3A8dZIzcefWVlwv2ZZC4DHIS+WYs=
 =0yaC
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-for-mingo-4.17-20180323' 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:

- Move non-TUI specific annotation routines out of the TUI browser so
  that it can be used in other UIs, and to demonstrate that introduce
  a 'perf annotate --stdio2' option that will apply those formatting
  routines to provide a non-interactive annotation mode (Arnaldo Carvalho de Melo)

- Add 'P' hotkey to the annotation TUI, so dump the current annotated
  symbol to a file, easing report thru e-mail, by getting rid of the
  spaces + right hand side scrollbar chars (Arnaldo Carvalho de Melo)

- Support --ignore-vmlinux to 'perf report' and 'perf annotate', that
  was already present in 'perf top', to use /proc/{kcore,kallsyms},
  allowing to see what is in fact running (patched stuff, alternatives,
  ftrace, etc), not the initial state of the kernel (vmlinux) (Arnaldo Carvalho de Melo)

- Support 'jump' instructions to a different function, treating them
  as 'call' instructions (Arnaldo Carvalho de Melo)

- Fix some jump artifacts when using vmlinux + ASM functions, where
  the ELF symtab for instance, for entry_SYSCALL_64 includes that and
  what comes after the 'syscall_return_via_sysret' label, but the
  objdump -dS prints the jump targets + offsets using the
  syscall_return_via_sysret address, which was confusing 'perf annotate'.
  See the cset comments for further info (Arnaldo Carvalho de Melo)

- Report error from dwfl_attach_state() in the unwind code (Martin Vuille)

- Reference Py_None before returning it in the python extension (Petr Machata)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Ingo Molnar 2018-03-25 10:38:15 +02:00
commit a0ac7b3ca9
13 changed files with 944 additions and 587 deletions