From: Ingo Molnar <mingo@kernel.org> To: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: linux-arch@vger.kernel.org, Ananth N Mavinakayanahalli <ananth@in.ibm.com>, Sandeepa Prabhu <sandeepa.prabhu@linaro.org>, x86@kernel.org, lkml <linux-kernel@vger.kernel.org>, "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>, virtualization@lists.linux-foundation.org, "Frank Ch. Eigler" <fche@redhat.com>, systemtap@sourceware.org, "David S. Miller" <davem@davemloft.net> Subject: Re: Re: Re: [PATCH -tip v3 00/23] kprobes: introduce NOKPROBE_SYMBOL() and general cleaning of kprobe blacklist Date: Wed, 27 Nov 2013 14:30:45 +0100 [thread overview] Message-ID: <20131127133045.GC18422@gmail.com> (raw) In-Reply-To: <528F4406.3090309@hitachi.com> * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote: > (2013/11/22 11:35), Masami Hiramatsu wrote: > > (2013/11/21 16:29), Ingo Molnar wrote: > >> > >> * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote: > >> > >>> (2013/11/21 2:36), Frank Ch. Eigler wrote: > >> > >> [ ... ] > >>>> one needs to resort to something like: > >>>> > >>>> # cat /proc/kallsyms | grep ' [tT] ' | while read addr type symbol; do > >>>> perf probe $symbol > >>>> done > >>>> > >>>> then wait for a few hours for that to finish. Then, or while the loop > >>>> is still running, run > >>>> > >>>> # perf record -e 'probe:*' -aR sleep 1 > >>>> > >>>> to take a kernel down. > >>> > >>> Um, indeed, current blacklist is not perfect. [...] > >> > >> Then it needs to be fixed ASAP! > > > > OK, I see. At least the two patches included this series > > should be fixed. :) > > > > And more, I need to test all symbols and drills down. > > OK, what I've found was; > - The functions which can be ftraced look good. > (see tracing/available_filter_functions) > - following functions should not be able to be probed. > - memcpy, memset > - native_load_sp0 and some other native functions (need to be clear) > - restore > - trace_graph_return > - trace_hardirqs_off_thunk, trace_hardirqs_on_thunk > - This list still be not perfect. I just enabled/disabled kprobes > one by one. There might be combined bugs (combination of several > kprobes). > - Some of them are hard to specify by NOKPROBE_SYMBOL because they are > defined in assembly file. > > Anyway, to fix all of them, I think we need file-based blacklist > especially for assembler symbols. assembler symbols shouldn't be particular hard either, just put them into the noprobes section. > For example, we can get all text symbols by below command; > nm some-file.o | grep -i " t " | cut -f3 -d" " > so that we can make a blacklisted-symbol list for the file. > I need to look the Kbuild for how I can do that in Makefile. I think it's generally better to add explicit annotations to the code. Thanks, Ingo
WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@kernel.org> To: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: "Frank Ch. Eigler" <fche@redhat.com>, linux-arch@vger.kernel.org, Ananth N Mavinakayanahalli <ananth@in.ibm.com>, Sandeepa Prabhu <sandeepa.prabhu@linaro.org>, x86@kernel.org, lkml <linux-kernel@vger.kernel.org>, "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>, virtualization@lists.linux-foundation.org, systemtap@sourceware.org, "David S. Miller" <davem@davemloft.net> Subject: Re: Re: Re: [PATCH -tip v3 00/23] kprobes: introduce NOKPROBE_SYMBOL() and general cleaning of kprobe blacklist Date: Wed, 27 Nov 2013 14:30:45 +0100 [thread overview] Message-ID: <20131127133045.GC18422@gmail.com> (raw) Message-ID: <20131127133045.43Y280HmKD_kcCbGVhBoMziCrgHA_zQ7bVUHmK1wTko@z> (raw) In-Reply-To: <528F4406.3090309@hitachi.com> * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote: > (2013/11/22 11:35), Masami Hiramatsu wrote: > > (2013/11/21 16:29), Ingo Molnar wrote: > >> > >> * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote: > >> > >>> (2013/11/21 2:36), Frank Ch. Eigler wrote: > >> > >> [ ... ] > >>>> one needs to resort to something like: > >>>> > >>>> # cat /proc/kallsyms | grep ' [tT] ' | while read addr type symbol; do > >>>> perf probe $symbol > >>>> done > >>>> > >>>> then wait for a few hours for that to finish. Then, or while the loop > >>>> is still running, run > >>>> > >>>> # perf record -e 'probe:*' -aR sleep 1 > >>>> > >>>> to take a kernel down. > >>> > >>> Um, indeed, current blacklist is not perfect. [...] > >> > >> Then it needs to be fixed ASAP! > > > > OK, I see. At least the two patches included this series > > should be fixed. :) > > > > And more, I need to test all symbols and drills down. > > OK, what I've found was; > - The functions which can be ftraced look good. > (see tracing/available_filter_functions) > - following functions should not be able to be probed. > - memcpy, memset > - native_load_sp0 and some other native functions (need to be clear) > - restore > - trace_graph_return > - trace_hardirqs_off_thunk, trace_hardirqs_on_thunk > - This list still be not perfect. I just enabled/disabled kprobes > one by one. There might be combined bugs (combination of several > kprobes). > - Some of them are hard to specify by NOKPROBE_SYMBOL because they are > defined in assembly file. > > Anyway, to fix all of them, I think we need file-based blacklist > especially for assembler symbols. assembler symbols shouldn't be particular hard either, just put them into the noprobes section. > For example, we can get all text symbols by below command; > nm some-file.o | grep -i " t " | cut -f3 -d" " > so that we can make a blacklisted-symbol list for the file. > I need to look the Kbuild for how I can do that in Makefile. I think it's generally better to add explicit annotations to the code. Thanks, Ingo
next prev parent reply other threads:[~2013-11-27 13:30 UTC|newest] Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-11-20 4:21 [PATCH -tip v3 00/23] kprobes: introduce NOKPROBE_SYMBOL() and general cleaning of kprobe blacklist Masami Hiramatsu 2013-11-20 4:21 ` Masami Hiramatsu 2013-11-20 4:21 ` [PATCH -tip v3 01/23] kprobes: Prohibit probing on .entry.text code Masami Hiramatsu 2013-11-20 4:21 ` Masami Hiramatsu 2013-11-20 4:21 ` [PATCH -tip v3 02/23] kprobes: Introduce NOKPROBE_SYMBOL() macro for blacklist Masami Hiramatsu 2013-11-20 4:21 ` Masami Hiramatsu 2013-11-27 13:32 ` Ingo Molnar 2013-11-27 13:32 ` Ingo Molnar 2013-11-28 7:56 ` Masami Hiramatsu 2013-11-20 4:21 ` [PATCH -tip v3 03/23] kprobes: Show blacklist entries via debugfs Masami Hiramatsu 2013-11-20 4:21 ` [PATCH -tip v3 04/23] kprobes: Support blacklist functions in module Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 05/23] kprobes: Use NOKPROBE_SYMBOL() in sample modules Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 06/23] kprobes/x86: Allow probe on some kprobe preparation functions Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 07/23] kprobes/x86: Use NOKPROBE_SYMBOL instead of __kprobes Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 08/23] kprobes: Allow probe on some kprobe functions Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 09/23] kprobes: Use NOKPROBE_SYMBOL macro instead of __kprobes Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 10/23] ftrace/kprobes: Allow probing on some preparation functions Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 11/23] ftrace/kprobes: Use NOKPROBE_SYMBOL macro in ftrace Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 12/23] x86/hw_breakpoint: Use NOKPROBE_SYMBOL macro in hw_breakpoint Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 13/23] x86/trap: Use NOKPROBE_SYMBOL macro in trap.c Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-22 21:21 ` Andi Kleen 2013-11-23 12:11 ` Masami Hiramatsu 2013-11-27 1:38 ` Masami Hiramatsu 2013-11-27 1:38 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 14/23] x86/fault: Use NOKPROBE_SYMBOL macro in fault.c Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 15/23] x86/alternative: Use NOKPROBE_SYMBOL macro in alternative.c Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 16/23] x86/nmi: Use NOKPROBE_SYMBOL macro for nmi handlers Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 17/23] x86/kvm: Use NOKPROBE_SYMBOL macro in kvm.c Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 18/23] x86/dumpstack: Use NOKPROBE_SYMBOL macro in dumpstack.c Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-21 11:30 ` Ingo Molnar 2013-11-21 11:30 ` Ingo Molnar 2013-11-22 2:08 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 19/23] [BUGFIX] kprobes/x86: Prohibit probing on debug_stack_* Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 20/23] [BUGFIX] kprobes: Prohibit probing on func_ptr_is_kernel_text Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 21/23] notifier: Use NOKPROBE_SYMBOL macro in notifier Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 22/23] sched: Use NOKPROBE_SYMBOL macro in sched Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 4:22 ` [PATCH -tip v3 23/23] kprobes/x86: Use kprobe_blacklist for .kprobes.text and .entry.text Masami Hiramatsu 2013-11-20 4:22 ` Masami Hiramatsu 2013-11-20 14:26 ` [PATCH -tip v3 00/23] kprobes: introduce NOKPROBE_SYMBOL() and general cleaning of kprobe blacklist Frank Ch. Eigler 2013-11-20 15:38 ` Ingo Molnar 2013-11-20 15:38 ` Ingo Molnar 2013-11-20 17:36 ` Frank Ch. Eigler 2013-11-20 17:56 ` Steven Rostedt 2013-11-20 18:09 ` Josh Stone 2013-11-21 2:14 ` Masami Hiramatsu 2013-11-21 2:14 ` Masami Hiramatsu 2013-11-21 7:29 ` Ingo Molnar 2013-11-22 2:35 ` Masami Hiramatsu 2013-11-22 2:35 ` Masami Hiramatsu 2013-11-22 11:46 ` Masami Hiramatsu 2013-11-27 13:30 ` Ingo Molnar [this message] 2013-11-27 13:30 ` Ingo Molnar 2013-11-28 10:43 ` Masami Hiramatsu 2013-11-30 13:46 ` Ingo Molnar 2013-12-01 2:16 ` Masami Hiramatsu 2013-12-01 2:16 ` Masami Hiramatsu
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=20131127133045.GC18422@gmail.com \ --to=mingo@kernel.org \ --cc=ananth@in.ibm.com \ --cc=davem@davemloft.net \ --cc=fche@redhat.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=masami.hiramatsu.pt@hitachi.com \ --cc=rostedt@goodmis.org \ --cc=sandeepa.prabhu@linaro.org \ --cc=systemtap@sourceware.org \ --cc=virtualization@lists.linux-foundation.org \ --cc=x86@kernel.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).