From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
Jeremy Fitzhardinge <jeremy@goop.org>,
x86@kernel.org, Andi Kleen <andi@firstfloor.org>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Arnd Bergmann <arnd@arndb.de>,
Peter Zijlstra <peterz@infradead.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Rusty Russell <rusty@rustcorp.com.au>,
"David S. Miller" <davem@davemloft.net>,
Chris Wright <chrisw@sous-sol.org>,
Sandeepa Prabhu <sandeepa.prabhu@linaro.org>,
fche@redhat.com, mingo@redhat.com, Rob Landley <rob@landley.net>,
"H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Alok Kataria <akataria@vmware.com>,
systemtap@sourceware.org
Subject: Re: [PATCH -tip v8 04/26] kprobes: Introduce NOKPROBE_SYMBOL() macro for blacklist
Date: Wed, 26 Mar 2014 16:04:01 +0900 [thread overview]
Message-ID: <53327BE1.906@hitachi.com> (raw)
In-Reply-To: <20140321204917.636820fa@gandalf.local.home>
(2014/03/22 9:49), Steven Rostedt wrote:
> On Wed, 05 Mar 2014 20:59:11 +0900
> Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote:
>
>
>>
>> diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt
>> index 0cfb00f..7062631 100644
>> --- a/Documentation/kprobes.txt
>> +++ b/Documentation/kprobes.txt
>> @@ -22,8 +22,9 @@ Appendix B: The kprobes sysctl interface
>>
>> Kprobes enables you to dynamically break into any kernel routine and
>> collect debugging and performance information non-disruptively. You
>> -can trap at almost any kernel code address, specifying a handler
>> +can trap at almost any kernel code address(*), specifying a handler
>> routine to be invoked when the breakpoint is hit.
>> +(*: at some part of kernel code can not be trapped, see 1.5 Blacklist)
>
> "*: some parts of the kernel code can not be trapped,"
>
>>
>> There are currently three types of probes: kprobes, jprobes, and
>> kretprobes (also called return probes). A kprobe can be inserted
>> @@ -273,6 +274,19 @@ using one of the following techniques:
>> or
>> - Execute 'sysctl -w debug.kprobes_optimization=n'
>>
>> +1.5 Blacklist
>> +
>> +Kprobes can probe almost of the kernel except itself. This means
>
> s/almost/most/
>
>> +that there are some functions where kprobes cannot probe. Probing
>> +(trapping) such functions can cause recursive trap (e.g. double
>
> cause a recursive trap
>
>> +fault) or at least the nested probe handler never be called.
>
> "or the nested probe handler may never be called."
>
>> +Kprobes manages such functions as a blacklist.
>> +If you want to add a function into the blacklist, you just need
>> +to (1) include linux/kprobes.h and (2) use NOKPROBE_SYMBOL() macro
>> +to specify a blacklisted function.
>> +Kprobes checks given probe address with the blacklist and reject
>
> "checks the given probe address against the black list and rejects"
>
>> +registering if the given address is in the blacklist.
>
> registering it, if
Thank you for helping ! :)
>> diff --git a/arch/x86/include/asm/asm.h b/arch/x86/include/asm/asm.h
>> index 4582e8e..7730c1c 100644
>> --- a/arch/x86/include/asm/asm.h
>> +++ b/arch/x86/include/asm/asm.h
>> @@ -57,6 +57,12 @@
>> .long (from) - . ; \
>> .long (to) - . + 0x7ffffff0 ; \
>> .popsection
>> +
>> +# define _ASM_NOKPROBE(entry) \
>> + .pushsection "_kprobe_blacklist","aw" ; \
>> + _ASM_ALIGN ; \
>> + _ASM_PTR (entry); \
>> + .popsection
>> #else
>> # define _ASM_EXTABLE(from,to) \
>> " .pushsection \"__ex_table\",\"a\"\n" \
>> @@ -71,6 +77,7 @@
>> " .long (" #from ") - .\n" \
>> " .long (" #to ") - . + 0x7ffffff0\n" \
>> " .popsection\n"
>> +/* For C file, we already have NOKPROBE_SYMBOL macro */
>> #endif
>>
>> #endif /* _ASM_X86_ASM_H */
>> diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
>> index 1b10af8..4c785fd 100644
>> --- a/arch/x86/kernel/paravirt.c
>> +++ b/arch/x86/kernel/paravirt.c
>> @@ -23,6 +23,7 @@
>> #include <linux/efi.h>
>> #include <linux/bcd.h>
>> #include <linux/highmem.h>
>> +#include <linux/kprobes.h>
>>
>> #include <asm/bug.h>
>> #include <asm/paravirt.h>
>> @@ -389,6 +390,9 @@ __visible struct pv_cpu_ops pv_cpu_ops = {
>> .end_context_switch = paravirt_nop,
>> };
>>
>> +/* At this point, native_get_debugreg has real function entry */
>
> "has a real"
OK, I'll fix them all ;)
Thank you,
--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
next prev parent reply other threads:[~2014-03-26 7:04 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-05 11:58 [PATCH -tip v8 00/26] kprobes: introduce NOKPROBE_SYMBOL, bugfixes and scalbility efforts Masami Hiramatsu
2014-03-05 11:58 ` [PATCH -tip v8 01/26] [BUGFIX]kprobes/x86: Fix page-fault handling logic Masami Hiramatsu
2014-03-21 21:39 ` Steven Rostedt
2014-03-24 1:10 ` Masami Hiramatsu
2014-03-05 11:58 ` [PATCH -tip v8 02/26] kprobes/x86: Allow to handle reentered kprobe on singlestepping Masami Hiramatsu
2014-03-21 21:44 ` Steven Rostedt
2014-03-24 10:07 ` Masami Hiramatsu
2014-03-05 11:59 ` [PATCH -tip v8 03/26] kprobes: Prohibit probing on .entry.text code Masami Hiramatsu
2014-03-21 22:04 ` Steven Rostedt
2014-03-24 1:48 ` Masami Hiramatsu
2014-03-24 18:53 ` Steven Rostedt
2014-03-24 18:55 ` Steven Rostedt
2014-03-05 11:59 ` [PATCH -tip v8 04/26] kprobes: Introduce NOKPROBE_SYMBOL() macro for blacklist Masami Hiramatsu
2014-03-22 0:49 ` Steven Rostedt
2014-03-26 7:04 ` Masami Hiramatsu [this message]
2014-03-05 11:59 ` [PATCH -tip v8 05/26] [BUGFIX] kprobes/x86: Prohibit probing on debug_stack_* Masami Hiramatsu
2014-03-22 0:50 ` Steven Rostedt
2014-03-05 11:59 ` [PATCH -tip v8 06/26] [BUGFIX] x86: Prohibit probing on native_set_debugreg/load_idt Masami Hiramatsu
2014-03-22 0:53 ` Steven Rostedt
2014-03-05 11:59 ` [PATCH -tip v8 07/26] [BUGFIX] x86: Prohibit probing on thunk functions and restore Masami Hiramatsu
2014-03-22 1:00 ` Steven Rostedt
2014-03-24 3:03 ` Masami Hiramatsu
2014-03-24 18:56 ` Steven Rostedt
2014-03-05 11:59 ` [PATCH -tip v8 08/26] kprobes/x86: Call exception handlers directly from do_int3/do_debug Masami Hiramatsu
2014-03-22 1:05 ` Steven Rostedt
2014-03-24 8:47 ` Masami Hiramatsu
2014-03-24 18:58 ` Steven Rostedt
2014-03-05 11:59 ` [PATCH -tip v8 09/26] x86: Call exception_enter after kprobes handled Masami Hiramatsu
2014-03-24 19:31 ` Steven Rostedt
2014-03-05 11:59 ` [PATCH -tip v8 10/26] kprobes/x86: Allow probe on some kprobe preparation functions Masami Hiramatsu
2014-03-24 19:35 ` Steven Rostedt
2014-03-25 9:20 ` Masami Hiramatsu
2014-03-27 5:50 ` Masami Hiramatsu
2014-03-05 12:00 ` [PATCH -tip v8 11/26] kprobes: Allow probe on some kprobe functions Masami Hiramatsu
2014-03-24 19:37 ` Steven Rostedt
2014-03-25 9:22 ` Masami Hiramatsu
2014-03-05 12:00 ` [PATCH -tip v8 12/26] ftrace/*probes: Allow probing on some functions Masami Hiramatsu
2014-03-24 19:38 ` Steven Rostedt
2014-03-25 9:30 ` Masami Hiramatsu
2014-03-05 12:00 ` [PATCH -tip v8 13/26] x86: Allow kprobes on text_poke/hw_breakpoint Masami Hiramatsu
2014-03-24 19:40 ` Steven Rostedt
2014-03-05 12:00 ` [PATCH -tip v8 14/26] x86: Use NOKPROBE_SYMBOL() instead of __kprobes annotation Masami Hiramatsu
2014-03-24 19:45 ` Steven Rostedt
2014-03-25 10:33 ` Masami Hiramatsu
2014-03-05 12:00 ` [PATCH -tip v8 15/26] kprobes: Use NOKPROBE_SYMBOL macro instead of __kprobes Masami Hiramatsu
2014-03-24 19:46 ` Steven Rostedt
2014-03-05 12:00 ` [PATCH -tip v8 16/26] ftrace/kprobes: Use NOKPROBE_SYMBOL macro in ftrace Masami Hiramatsu
2014-03-24 20:10 ` Steven Rostedt
2014-03-25 10:31 ` Masami Hiramatsu
2014-03-05 12:00 ` [PATCH -tip v8 17/26] notifier: Use NOKPROBE_SYMBOL macro in notifier Masami Hiramatsu
2014-03-24 20:12 ` Steven Rostedt
2014-03-25 10:23 ` Masami Hiramatsu
2014-03-25 10:58 ` Steven Rostedt
2014-03-05 12:00 ` [PATCH -tip v8 18/26] sched: Use NOKPROBE_SYMBOL macro in sched Masami Hiramatsu
2014-03-24 20:14 ` Steven Rostedt
2014-03-05 12:00 ` [PATCH -tip v8 19/26] kprobes: Show blacklist entries via debugfs Masami Hiramatsu
2014-03-24 20:19 ` Steven Rostedt
2014-03-25 10:30 ` Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 20/26] kprobes: Support blacklist functions in module Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 21/26] kprobes: Use NOKPROBE_SYMBOL() in sample modules Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 22/26] kprobes/x86: Use kprobe_blacklist for .kprobes.text and .entry.text Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 23/26] kprobes/x86: Remove unneeded preempt_disable/enable in interrupt handlers Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 24/26] kprobes: Enlarge hash table to 512 entries Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 25/26] kprobes: Introduce kprobe cache to reduce cache misshits Masami Hiramatsu
2014-03-05 12:01 ` [PATCH -tip v8 26/26] ftrace: Introduce FTRACE_OPS_FL_SELF_FILTER for ftrace-kprobe Masami Hiramatsu
2014-03-14 13:11 ` [PATCH -tip v8 00/26] kprobes: introduce NOKPROBE_SYMBOL, bugfixes and scalbility efforts 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=53327BE1.906@hitachi.com \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=akataria@vmware.com \
--cc=ananth@in.ibm.com \
--cc=andi@firstfloor.org \
--cc=arnd@arndb.de \
--cc=chrisw@sous-sol.org \
--cc=davem@davemloft.net \
--cc=fche@redhat.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rob@landley.net \
--cc=rostedt@goodmis.org \
--cc=rusty@rustcorp.com.au \
--cc=sandeepa.prabhu@linaro.org \
--cc=systemtap@sourceware.org \
--cc=tglx@linutronix.de \
--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: 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.