From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>, David Ahern <dsahern@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
Milian Wolff <milian.wolff@kdab.com>,
Wang Nan <wangnan0@huawei.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: zeros in frame pointer callchains
Date: Tue, 12 Apr 2016 10:38:47 -0300 [thread overview]
Message-ID: <20160412133847.GC10972@kernel.org> (raw)
Hi,
Namhyung, while working on supporting callchains in 'perf trace' I
noticed something I think we discussed at some point, zeros in frame pointer
callchains...
Oh well figured it out, its probably userspace not having frame
pointers, grrr anyway, keeping the rest of the message, for reference,
but now I think we need to have some expressiveness to say that for that
particular event we want to use perf_event_attr.exclude_callchain_user...
First add a special probe point that 'perf trace' uses, if present:
# perf probe 'vfs_getname=getname_flags:72 pathname=filename:string'
Then lets ask to see just when this thing hits, no syscall
printing whatsoever ('trace' == 'perf trace'), sometimes just a few
zeros at the top, sometimes a long series, need to investigate how to
chop those off in the kernel, not to use the ring buffer needlessly,
will start chopping these in userspace (in perf trace):
# trace --no-sys --ev probe:vfs_getname/call-graph=fp/
34033.533 probe:vfs_getname:(ffffffff8124c06c) pathname="/usr/share/pixmaps")
getname_flags+0xfe20009d ([kernel.kallsyms])
user_path_at_empty+0xfe200023 ([kernel.kallsyms])
vfs_fstatat+0xfe200066 ([kernel.kallsyms])
SYSC_newstat+0xfe20002e ([kernel.kallsyms])
sys_newstat+0xfe20000e ([kernel.kallsyms])
entry_SYSCALL_64_fastpath+0xfe20001a ([kernel.kallsyms])
__xstat64+0xffff011e90b98015 (/usr/lib64/libc-2.22.so)
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
36001.681 probe:vfs_getname:(ffffffff8124c06c) pathname="/var/tmp")
getname_flags+0xfe20009d ([kernel.kallsyms])
user_path_at_empty+0xfe200023 ([kernel.kallsyms])
vfs_fstatat+0xfe200066 ([kernel.kallsyms])
SYSC_newstat+0xfe20002e ([kernel.kallsyms])
sys_newstat+0xfe20000e ([kernel.kallsyms])
entry_SYSCALL_64_fastpath+0xfe20001a ([kernel.kallsyms])
__xstat64+0xffff00b816a28015 (/usr/lib64/libc-2.22.so)
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
36001.696 probe:vfs_getname:(ffffffff8124c06c) pathname="/var/tmp")
getname_flags+0xfe20009d ([kernel.kallsyms])
user_path_at_empty+0xfe200023 ([kernel.kallsyms])
sys_access+0xfe2000b4 ([kernel.kallsyms])
entry_SYSCALL_64_fastpath+0xfe20001a ([kernel.kallsyms])
__GI___access+0xffff00b816a28007 (/usr/lib64/libc-2.22.so)
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
8254.597 probe:vfs_getname:(ffffffff8124c06c) pathname="/etc/localtime")
getname_flags+0xfe20009d ([kernel.kallsyms])
user_path_at_empty+0xfe200023 ([kernel.kallsyms])
vfs_fstatat+0xfe200066 ([kernel.kallsyms])
SYSC_newstat+0xfe20002e ([kernel.kallsyms])
sys_newstat+0xfe20000e ([kernel.kallsyms])
entry_SYSCALL_64_fastpath+0xfe20001a ([kernel.kallsyms])
__xstat64+0xffff0104f5696015 (/usr/lib64/libc-2.22.so)
[0] ([unknown])
[0] ([unknown])
9001.567 probe:vfs_getname:(ffffffff8124c06c) pathname="/etc/firewalld/ipsets")
getname_flags+0xfe20009d ([kernel.kallsyms])
user_path_at_empty+0xfe200023 ([kernel.kallsyms])
sys_inotify_add_watch+0xfe200098 ([kernel.kallsyms])
entry_SYSCALL_64_fastpath+0xfe20001a ([kernel.kallsyms])
inotify_add_watch+0xffff008bb9432007 (/usr/lib64/libc-2.22.so)
9450.181 probe:vfs_getname:(ffffffff8124c06c) pathname="/root")
getname_flags+0xfe20009d ([kernel.kallsyms])
user_path_at_empty+0xfe200023 ([kernel.kallsyms])
sys_inotify_add_watch+0xfe200098 ([kernel.kallsyms])
entry_SYSCALL_64_fastpath+0xfe20001a ([kernel.kallsyms])
inotify_add_watch+0xffff01b7aa4f2007 (/usr/lib64/libc-2.22.so)
next reply other threads:[~2016-04-12 13:38 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-04-12 13:38 Arnaldo Carvalho de Melo [this message] 2016-04-13 1:06 ` zeros in frame pointer callchains Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160412133847.GC10972@kernel.org \
--to=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=milian.wolff@kdab.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.