This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[tip:perf/core] kprobes: Hide CONFIG_OPTPROBES and set if arch supports optimized kprobes
- From: tip-bot for Masami Hiramatsu <mhiramat at redhat dot com>
- To: linux-tip-commits at vger dot kernel dot org
- Cc: acme at redhat dot com, mingo at redhat dot com, a dot p dot zijlstra at chello dot nl, mail at dieterries dot net, efault at gmx dot de, fweisbec at gmail dot com, dle-develop at lists dot sourceforge dot net, hirofumi at mail dot parknet dot co dot jp, tglx at linutronix dot de, mhiramat at redhat dot com, systemtap at sources dot redhat dot com, hpa at zytor dot com, paulus at samba dot org, linux-kernel at vger dot kernel dot org, ananth at in dot ibm dot com, mingo at elte dot hu
- Date: Tue, 16 Mar 2010 14:47:53 GMT
- Subject: [tip:perf/core] kprobes: Hide CONFIG_OPTPROBES and set if arch supports optimized kprobes
- Git-commit-id: 5cc718b9dad682329a60e73547c6e708faa5bbe4
- References: <20100315170054.31593.3153.stgit@localhost6.localdomain6>
- Reply-to: mingo at redhat dot com, acme at redhat dot com, mail at dieterries dot net, a dot p dot zijlstra at chello dot nl, efault at gmx dot de, fweisbec at gmail dot com, dle-develop at lists dot sourceforge dot net, hirofumi at mail dot parknet dot co dot jp, tglx at linutronix dot de, mhiramat at redhat dot com, systemtap at sources dot redhat dot com, hpa at zytor dot com, paulus at samba dot org, linux-kernel at vger dot kernel dot org, ananth at in dot ibm dot com, mingo at elte dot hu
Commit-ID: 5cc718b9dad682329a60e73547c6e708faa5bbe4
Gitweb: http://git.kernel.org/tip/5cc718b9dad682329a60e73547c6e708faa5bbe4
Author: Masami Hiramatsu <mhiramat@redhat.com>
AuthorDate: Mon, 15 Mar 2010 13:00:54 -0400
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Tue, 16 Mar 2010 11:07:23 +0100
kprobes: Hide CONFIG_OPTPROBES and set if arch supports optimized kprobes
Hide CONFIG_OPTPROBES and set if the arch supports optimized
kprobes (IOW, HAVE_OPTPROBES=y), since this option doesn't
change the major behavior of kprobes, and workarounds for minor
changes are documented.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Cc: systemtap <systemtap@sources.redhat.com>
Cc: DLE <dle-develop@lists.sourceforge.net>
Cc: Dieter Ries <mail@dieterries.net>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <20100315170054.31593.3153.stgit@localhost6.localdomain6>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
Documentation/kprobes.txt | 10 ++--------
arch/Kconfig | 9 ++-------
2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt
index 2f9115c..61c291c 100644
--- a/Documentation/kprobes.txt
+++ b/Documentation/kprobes.txt
@@ -165,8 +165,8 @@ the user entry_handler invocation is also skipped.
1.4 How Does Jump Optimization Work?
-If you configured your kernel with CONFIG_OPTPROBES=y (currently
-this option is supported on x86/x86-64, non-preemptive kernel) and
+If your kernel is built with CONFIG_OPTPROBES=y (currently this flag
+is automatically set 'y' on x86/x86-64, non-preemptive kernel) and
the "debug.kprobes_optimization" kernel parameter is set to 1 (see
sysctl(8)), Kprobes tries to reduce probe-hit overhead by using a jump
instruction instead of a breakpoint instruction at each probepoint.
@@ -271,8 +271,6 @@ tweak the kernel's execution path, you need to suppress optimization,
using one of the following techniques:
- Specify an empty function for the kprobe's post_handler or break_handler.
or
-- Config CONFIG_OPTPROBES=n.
- or
- Execute 'sysctl -w debug.kprobes_optimization=n'
2. Architectures Supported
@@ -307,10 +305,6 @@ it useful to "Compile the kernel with debug info" (CONFIG_DEBUG_INFO),
so you can use "objdump -d -l vmlinux" to see the source-to-object
code mapping.
-If you want to reduce probing overhead, set "Kprobes jump optimization
-support" (CONFIG_OPTPROBES) to "y". You can find this option under the
-"Kprobes" line.
-
4. API Reference
The Kprobes API includes a "register" function and an "unregister"
diff --git a/arch/Kconfig b/arch/Kconfig
index e5eb133..f06010f 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -42,15 +42,10 @@ config KPROBES
If in doubt, say "N".
config OPTPROBES
- bool "Kprobes jump optimization support (EXPERIMENTAL)"
- default y
- depends on KPROBES
+ def_bool y
+ depends on KPROBES && HAVE_OPTPROBES
depends on !PREEMPT
- depends on HAVE_OPTPROBES
select KALLSYMS_ALL
- help
- This option will allow kprobes to optimize breakpoint to
- a jump for reducing its overhead.
config HAVE_EFFICIENT_UNALIGNED_ACCESS
bool