diff options
author | Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> | 2014-11-21 05:25:16 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2014-11-21 14:42:10 -0500 |
commit | f8b8be8a310a55856fd2c369dade08088d85df3b (patch) | |
tree | 4c427a2981e4b66392b5bf9d7f8988479040150c /Documentation/trace | |
parent | a017784f1b236cbc42ce83b4345a667c21113481 (diff) |
ftrace, kprobes: Support IPMODIFY flag to find IP modify conflict
Introduce FTRACE_OPS_FL_IPMODIFY to avoid conflict among
ftrace users who may modify regs->ip to change the execution
path. If two or more users modify the regs->ip on the same
function entry, one of them will be broken. So they must add
IPMODIFY flag and make sure that ftrace_set_filter_ip() succeeds.
Note that ftrace doesn't allow ftrace_ops which has IPMODIFY
flag to have notrace hash, and the ftrace_ops must have a
filter hash (so that the ftrace_ops can hook only specific
entries), because it strongly depends on the address and
must be allowed for only few selected functions.
Link: http://lkml.kernel.org/r/20141121102516.11844.27829.stgit@localhost.localdomain
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Seth Jennings <sjenning@redhat.com>
Cc: Petr Mladek <pmladek@suse.cz>
Cc: Vojtech Pavlik <vojtech@suse.cz>
Cc: Miroslav Benes <mbenes@suse.cz>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
[ fixed up some of the comments ]
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'Documentation/trace')
-rw-r--r-- | Documentation/trace/ftrace.txt | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt index 4da42616939f..f10f5f5d260d 100644 --- a/Documentation/trace/ftrace.txt +++ b/Documentation/trace/ftrace.txt | |||
@@ -234,6 +234,11 @@ of ftrace. Here is a list of some of the key files: | |||
234 | will be displayed on the same line as the function that | 234 | will be displayed on the same line as the function that |
235 | is returning registers. | 235 | is returning registers. |
236 | 236 | ||
237 | If the callback registered to be traced by a function with | ||
238 | the "ip modify" attribute (thus the regs->ip can be changed), | ||
239 | an 'I' will be displayed on the same line as the function that | ||
240 | can be overridden. | ||
241 | |||
237 | function_profile_enabled: | 242 | function_profile_enabled: |
238 | 243 | ||
239 | When set it will enable all functions with either the function | 244 | When set it will enable all functions with either the function |