From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar 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 Message-ID: <20131127133045.GC18422@gmail.com> References: <20131120042148.15296.88360.stgit@kbuild-fedora.novalocal> <20131120153801.GA9743@gmail.com> <20131120173600.GK8993@redhat.com> <528D6C9F.8050809@hitachi.com> <20131121072938.GA16912@gmail.com> <528EC2FF.30301@hitachi.com> <528F4406.3090309@hitachi.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <528F4406.3090309@hitachi.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Masami Hiramatsu Cc: linux-arch@vger.kernel.org, Ananth N Mavinakayanahalli , Sandeepa Prabhu , x86@kernel.org, lkml , "Steven Rostedt (Red Hat)" , virtualization@lists.linux-foundation.org, "Frank Ch. Eigler" , systemtap@sourceware.org, "David S. Miller" List-Id: linux-arch.vger.kernel.org * Masami Hiramatsu wrote: > (2013/11/22 11:35), Masami Hiramatsu wrote: > > (2013/11/21 16:29), Ingo Molnar wrote: > >> > >> * Masami Hiramatsu 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-bk0-f52.google.com ([209.85.214.52]:48902 "EHLO mail-bk0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751428Ab3K0Nau (ORCPT ); Wed, 27 Nov 2013 08:30:50 -0500 Date: Wed, 27 Nov 2013 14:30:45 +0100 From: Ingo Molnar Subject: Re: Re: Re: [PATCH -tip v3 00/23] kprobes: introduce NOKPROBE_SYMBOL() and general cleaning of kprobe blacklist Message-ID: <20131127133045.GC18422@gmail.com> References: <20131120042148.15296.88360.stgit@kbuild-fedora.novalocal> <20131120153801.GA9743@gmail.com> <20131120173600.GK8993@redhat.com> <528D6C9F.8050809@hitachi.com> <20131121072938.GA16912@gmail.com> <528EC2FF.30301@hitachi.com> <528F4406.3090309@hitachi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <528F4406.3090309@hitachi.com> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Masami Hiramatsu Cc: "Frank Ch. Eigler" , linux-arch@vger.kernel.org, Ananth N Mavinakayanahalli , Sandeepa Prabhu , x86@kernel.org, lkml , "Steven Rostedt (Red Hat)" , virtualization@lists.linux-foundation.org, systemtap@sourceware.org, "David S. Miller" Message-ID: <20131127133045.43Y280HmKD_kcCbGVhBoMziCrgHA_zQ7bVUHmK1wTko@z> * Masami Hiramatsu wrote: > (2013/11/22 11:35), Masami Hiramatsu wrote: > > (2013/11/21 16:29), Ingo Molnar wrote: > >> > >> * Masami Hiramatsu 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