From 99972c0ef5d70778a54d83c6641e95403479612c Mon Sep 17 00:00:00 2001 From: Brendan Gregg Date: Sun, 30 Jul 2017 15:24:16 -0700 Subject: [PATCH] improve kernel annotation detection --- stackcollapse-perf.pl | 3 ++- .../perf-iperf-stacks-pidtid-01.txt-collapsed-kernel.txt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/stackcollapse-perf.pl b/stackcollapse-perf.pl index a643a5ee..491d28af 100755 --- a/stackcollapse-perf.pl +++ b/stackcollapse-perf.pl @@ -299,11 +299,12 @@ sub inline { # detect kernel from the module name; eg, frames to parse include: # ffffffff8103ce3b native_safe_halt ([kernel.kallsyms]) # 8c3453 tcp_sendmsg (/lib/modules/4.3.0-rc1-virtual/build/vmlinux) + # 7d8 ipv4_conntrack_local+0x7f8f80b8 ([nf_conntrack_ipv4]) # detect jit from the module name; eg: # 7f722d142778 Ljava/io/PrintStream;::print (/tmp/perf-19982.map) if (scalar(@inline) > 0) { $func .= "_[i]"; # inlined - } elsif ($annotate_kernel == 1 && $mod =~ m/(kernel\.|vmlinux$)/) { + } elsif ($annotate_kernel == 1 && $mod =~ m/(^\[|vmlinux$)/ && $mod !~ /unknown/) { $func .= "_[k]"; # kernel } elsif ($annotate_jit == 1 && $mod =~ m:/tmp/perf-\d+\.map:) { $func .= "_[j]"; # jitted diff --git a/test/results/perf-iperf-stacks-pidtid-01.txt-collapsed-kernel.txt b/test/results/perf-iperf-stacks-pidtid-01.txt-collapsed-kernel.txt index 3afad50e..513c6682 100644 --- a/test/results/perf-iperf-stacks-pidtid-01.txt-collapsed-kernel.txt +++ b/test/results/perf-iperf-stacks-pidtid-01.txt-collapsed-kernel.txt @@ -1,5 +1,5 @@ iperf;[unknown];[iperf] 1 -iperf;[unknown];[iperf];__vdso_gettimeofday 1 +iperf;[unknown];[iperf];__vdso_gettimeofday_[k] 1 iperf;[unknown];[libpthread-2.19.so];entry_SYSCALL_64_fastpath_[k];__fdget_pos_[k] 1 iperf;[unknown];[libpthread-2.19.so];entry_SYSCALL_64_fastpath_[k];sys_write_[k];vfs_write_[k];__vfs_write_[k];sock_write_iter_[k];sock_sendmsg_[k];inet_sendmsg_[k];copy_from_iter_[k] 1 iperf;[unknown];[libpthread-2.19.so];entry_SYSCALL_64_fastpath_[k];sys_write_[k];vfs_write_[k];__vfs_write_[k];sock_write_iter_[k];sock_sendmsg_[k];inet_sendmsg_[k];release_sock_[k] 1