perf/core improvements and fixes:

User visible:
 
 - Print callchains asked for events requested via 'perf trace --event' too:
   (Arnaldo Carvalho de Melo)
 
   # trace -e nanosleep --call dwarf --event sched:sched_switch/call-graph=fp/ usleep 1
    0.346 (0.005 ms): usleep/24428 nanosleep(rqtp: 0x7fffa15a0540) ...
    0.346 (        ): sched:sched_switch:usleep:24428 [120] S ==> swapper/3:0 [120])
                                     __schedule+0xfe200402 ([kernel.kallsyms])
                                     schedule+0xfe200035 ([kernel.kallsyms])
                                     do_nanosleep+0xfe20006f ([kernel.kallsyms])
                                     hrtimer_nanosleep+0xfe2000dc ([kernel.kallsyms])
                                     sys_nanosleep+0xfe20007a ([kernel.kallsyms])
                                     do_syscall_64+0xfe200062 ([kernel.kallsyms])
                                     return_from_SYSCALL_64+0xfe200000 ([kernel.kallsyms])
                                     __nanosleep+0xffff005b8d602010 (/usr/lib64/libc-2.22.so)
    0.400 (0.059 ms): usleep/24428  ... [continued]: nanosleep()) = 0
                                     __nanosleep+0x10 (/usr/lib64/libc-2.22.so)
                                     usleep+0x34 (/usr/lib64/libc-2.22.so)
                                     main+0x1eb (/usr/bin/usleep)
                                     __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                     _start+0x29 (/usr/bin/usleep)
 
 - Allow requesting that some CPUs or PIDs be highlighted in 'perf sched map' (Jiri Olsa)
 
 - Compact 'perf sched map' to show just CPUs with activity, improving the output
   in high core count systems (Jiri Olsa)
 
 - Fix segfault with 'perf trace --no-syscalls -e syscall-names' by bailing out
   such request, doesn't make sense to ask for no syscalls and then specify which
   ones should be printed (Arnaldo Carvalho de Melo)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJXDljhAAoJENZQFvNTUqpARMwQAK+pwzNfcx4BJXA4RuPfb2cL
 rvlZKXvJuhdYtH+mEYjkqW24CDTMObXGzJHX/ESkADnhHqBz15/aCCYYcN6Ib6TC
 b4hYKR8VfGe1oWFyKavFEl2iHeTZHJKqR//CV6ujmcC9/q9CV8FFjiYptyswqIiI
 qS1clOTVh/xhKEZqhTfCq2CgJcX0G/N9iTJJ4nm5JAb4wAUeQeTyX5Tbw7CrKOOQ
 D21EYviHxDQM3urG8eEB7FXVRbrjGHI4V0MUEth8Arkx64fvC7UTwTb+tsWjVVji
 MHLi0yylLH8mdDpzEnjRcj1z8/FjiNh9Cc5arC12cBREy98Sy7J50fLiSyR6UWyY
 UUB1qTwYe4cqi0bPGt50nMzizH/lOcYcbgyWEiKxsH6pfuNWvOJReFJt+Ovpg/wc
 Xr/0mhUOhy/aIMfUvvSST/+f/01BFzIx49PpDquKU/XAnB1PSHTnERV2BdY3D9Jr
 s9JaaKahj5P333wqxgQfOS9d+eu259kQcSvgHcsKAzZv4hUGsdAMMYaUOIfx1jBH
 qMOdD5aW1kzhzN9rm7saUCKZtplM48ZFM7cXKduxHpMhDCiQnUAEp+faM+uQm+n7
 9TGMLIA7by0TohG/jRQqObq5a/d8oDtwNwlZvOMf+BoJrG6ZXYii5KZ0vSiBVfIJ
 e7PhQIBfsJaeb+98EGgv
 =VzVp
 -----END PGP SIGNATURE-----

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

- Print callchains asked for events requested via 'perf trace --event' too:
  (Arnaldo Carvalho de Melo)

  # trace -e nanosleep --call dwarf --event sched:sched_switch/call-graph=fp/ usleep 1
   0.346 (0.005 ms): usleep/24428 nanosleep(rqtp: 0x7fffa15a0540) ...
   0.346 (        ): sched:sched_switch:usleep:24428 [120] S ==> swapper/3:0 [120])
                                    __schedule+0xfe200402 ([kernel.kallsyms])
                                    schedule+0xfe200035 ([kernel.kallsyms])
                                    do_nanosleep+0xfe20006f ([kernel.kallsyms])
                                    hrtimer_nanosleep+0xfe2000dc ([kernel.kallsyms])
                                    sys_nanosleep+0xfe20007a ([kernel.kallsyms])
                                    do_syscall_64+0xfe200062 ([kernel.kallsyms])
                                    return_from_SYSCALL_64+0xfe200000 ([kernel.kallsyms])
                                    __nanosleep+0xffff005b8d602010 (/usr/lib64/libc-2.22.so)
   0.400 (0.059 ms): usleep/24428  ... [continued]: nanosleep()) = 0
                                    __nanosleep+0x10 (/usr/lib64/libc-2.22.so)
                                    usleep+0x34 (/usr/lib64/libc-2.22.so)
                                    main+0x1eb (/usr/bin/usleep)
                                    __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                    _start+0x29 (/usr/bin/usleep)

- Allow requesting that some CPUs or PIDs be highlighted in 'perf sched map' (Jiri Olsa)

- Compact 'perf sched map' to show just CPUs with activity, improving the output
  in high core count systems (Jiri Olsa)

- Fix segfault with 'perf trace --no-syscalls -e syscall-names' by bailing out
  such request, doesn't make sense to ask for no syscalls and then specify which
  ones should be printed (Arnaldo Carvalho de Melo)

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 2016-04-13 20:27:58 +02:00
commit c5ab6ad7f6
12 changed files with 416 additions and 178 deletions