Linux kernel source tree
Go to file
Jiri Olsa 53fb18941d perf script: Enable IP fields for callchains
In case the callchains were deleted in pipe mode, we need to ensure that
the IP fields are enabled, otherwise the callchain is not displayed.

Enabling IP and SYM, which should be enough for callchains.

Committer testing:

Before:

Committer Testing:

before:

  # ls
  # perf record -g -e 'syscalls:*' sleep 0.1 2>/dev/null | perf script | tail
       sleep 5677 [0] 5034.295882:         syscalls:sys_exit_mmap: 0x7fcbcfa74000
       sleep 5677 [0] 5034.295885:       syscalls:sys_enter_close: fd: 0x00000003
       sleep 5677 [0] 5034.295886:        syscalls:sys_exit_close: 0x0
       sleep 5677 [0] 5034.295911:   syscalls:sys_enter_nanosleep: rqtp: 0x7fff775b33a0, rmtp: 0x00000000
       sleep 5677 [0] 5034.396021:    syscalls:sys_exit_nanosleep: 0x0
       sleep 5677 [0] 5034.396027:       syscalls:sys_enter_close: fd: 0x00000001
       sleep 5677 [0] 5034.396028:        syscalls:sys_exit_close: 0x0
       sleep 5677 [0] 5034.396029:       syscalls:sys_enter_close: fd: 0x00000002
       sleep 5677 [0] 5034.396029:        syscalls:sys_exit_close: 0x0
       sleep 5677 [0] 5034.396032:  syscalls:sys_enter_exit_group: error_code: 0x00000000
  #
  # ls
  #

After:

  # perf record --call-graph=dwarf -e 'syscalls:sys_enter*' sleep 0.1 2>/dev/null | perf script | tail -37
  sleep 33010 [000]  5400.625269:              syscalls:sys_enter_nanosleep: rqtp: 0x7fff2d0e7860, rmtp: 0x00000000
  	    7f1406f131a7 __GI___nanosleep (inlined)
  	    561c4f996966 [unknown]
  	    561c4f99673f [unknown]
  	    561c4f9937af [unknown]
  	    7f1406e6c1a2 __libc_start_main
  	    561c4f99388d [unknown]

  sleep 33010 [000]  5400.725391:                  syscalls:sys_enter_close: fd: 0x00000001
  	    7f1406f3c3cb __GI___close_nocancel (inlined)
  	    7f1406ec7d6f _IO_new_file_close_it (inlined)
  	    7f1406ebafa5 _IO_new_fclose (inlined)
  	    561c4f996a40 [unknown]
  	    561c4f993d79 [unknown]
  	    7f1406e83e86 __run_exit_handlers
  	    7f1406e8403f __GI_exit (inlined)
  	    7f1406e6c1a9 __libc_start_main
  	    561c4f99388d [unknown]

  sleep 33010 [000]  5400.725395:                  syscalls:sys_enter_close: fd: 0x00000002
  	    7f1406f3c3cb __GI___close_nocancel (inlined)
  	    7f1406ec7d6f _IO_new_file_close_it (inlined)
  	    7f1406ebafa5 _IO_new_fclose (inlined)
  	    561c4f996a40 [unknown]
  	    561c4f993da2 [unknown]
  	    7f1406e83e86 __run_exit_handlers
  	    7f1406e8403f __GI_exit (inlined)
  	    7f1406e6c1a9 __libc_start_main
  	    561c4f99388d [unknown]

  sleep 33010 [000]  5400.725399:             syscalls:sys_enter_exit_group: error_code: 0x00000000
  	    7f1406f13466 __GI__exit (inlined)
  	    7f1406e83fa1 __run_exit_handlers
  	    7f1406e8403f __GI_exit (inlined)
  	    7f1406e6c1a9 __libc_start_main
  	    561c4f99388d [unknown]
  #

And, if we install coreutils-debuginfo, we'll have those [unknown] resolved,
those are for the /usr/bin/sleep binary, use:

  # dnf debuginfo-install coreutils

On Fedora and derivatives, then:

  # perf record --call-graph=dwarf -e 'syscalls:sys_enter*' sleep 0.1 2>/dev/null | perf script | tail -37
  sleep 33046 [009]  5533.910074:              syscalls:sys_enter_nanosleep: rqtp: 0x7ffea6fa7ab0, rmtp: 0x00000000
  	    7f5f786e81a7 __GI___nanosleep (inlined)
  	    564472454966 rpl_nanosleep
  	    56447245473f xnanosleep
  	    5644724517af main
  	    7f5f786411a2 __libc_start_main
  	    56447245188d _start

  sleep 33046 [009]  5534.010218:                  syscalls:sys_enter_close: fd: 0x00000001
  	    7f5f787113cb __GI___close_nocancel (inlined)
  	    7f5f7869cd6f _IO_new_file_close_it (inlined)
  	    7f5f7868ffa5 _IO_new_fclose (inlined)
  	    564472454a40 close_stream
  	    564472451d79 close_stdout
  	    7f5f78658e86 __run_exit_handlers
  	    7f5f7865903f __GI_exit (inlined)
  	    7f5f786411a9 __libc_start_main
  	    56447245188d _start

  sleep 33046 [009]  5534.010224:                  syscalls:sys_enter_close: fd: 0x00000002
  	    7f5f787113cb __GI___close_nocancel (inlined)
  	    7f5f7869cd6f _IO_new_file_close_it (inlined)
  	    7f5f7868ffa5 _IO_new_fclose (inlined)
  	    564472454a40 close_stream
  	    564472451da2 close_stdout
  	    7f5f78658e86 __run_exit_handlers
  	    7f5f7865903f __GI_exit (inlined)
  	    7f5f786411a9 __libc_start_main
  	    56447245188d _start

  sleep 33046 [009]  5534.010229:             syscalls:sys_enter_exit_group: error_code: 0x00000000
  	    7f5f786e8466 __GI__exit (inlined)
  	    7f5f78658fa1 __run_exit_handlers
  	    7f5f7865903f __GI_exit (inlined)
  	    7f5f786411a9 __libc_start_main
  	    56447245188d _start

  #

Reported-by: Paul Khuong <pvk@pvk.ca>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20200507095024.2789147-6-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2020-05-28 10:03:25 -03:00
arch perf/x86/rapl: Add AMD Fam17h RAPL support 2020-05-28 07:58:56 +02:00
block bdi: use bdi_dev_name() to get device name 2020-05-09 16:07:39 -06:00
certs .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
crypto gcc-10: avoid shadowing standard library 'free()' in crypto 2020-05-09 15:58:04 -07:00
Documentation Linux 5.7-rc7 2020-05-28 07:58:12 +02:00
drivers Linux 5.7-rc7 2020-05-28 07:58:12 +02:00
fs Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-23 17:16:18 -07:00
include Linux 5.7-rc7 2020-05-28 07:58:12 +02:00
init A single fix for early boot crashes of kernels built with gcc10 and 2020-05-17 11:08:29 -07:00
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index 2020-05-14 10:00:35 -07:00
kernel Linux 5.7-rc7 2020-05-28 07:58:12 +02:00
lib vsprintf: don't obfuscate NULL and error pointers 2020-05-19 11:35:38 -07:00
LICENSES LICENSES: Rename other to deprecated 2019-05-03 06:34:32 -06:00
mm z3fold: fix use-after-free when freeing handles 2020-05-23 10:26:32 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-23 17:16:18 -07:00
samples Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-15 13:10:06 -07:00
scripts scripts/gdb: repair rb_first() and rb_last() 2020-05-07 19:27:20 -07:00
security Linux 5.7-rc7 2020-05-28 07:58:12 +02:00
sound sound fixes for 5.7-rc7 2020-05-22 09:22:22 -07:00
tools perf script: Enable IP fields for callchains 2020-05-28 10:03:25 -03:00
usr kbuild: fix comment about missing include guard detection 2020-04-11 12:09:48 +09:00
virt KVM: Introduce kvm_make_all_cpus_request_except() 2020-05-08 07:44:32 -04:00
.clang-format clang-format: Update with the latest for_each macro list 2020-04-18 13:49:33 +02:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
.mailmap i2c: use my kernel.org address from now on 2020-05-05 16:29:09 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Hand MIPS over to Thomas 2020-02-24 22:43:18 -08:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig docs: kbuild: convert docs to ReST and rename to *.rst 2019-06-14 14:21:21 -06:00
MAINTAINERS Merge branch 'akpm' (patches from Andrew) 2020-05-23 11:21:47 -07:00
Makefile Linux 5.7-rc7 2020-05-24 15:32:54 -07:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.