From: Petr Mladek <pmladek@suse.cz>
To: Steven Rostedt <rostedt@goodmis.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Jiri Kosina <jkosina@suse.cz>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
Petr Mladek <pmladek@suse.cz>
Subject: [PATCH 2/4] x86: Fix ftrace patching recovery code to work on x86_64
Date: Mon, 17 Feb 2014 16:22:51 +0100 [thread overview]
Message-ID: <1392650573-3390-3-git-send-email-pmladek@suse.cz> (raw)
In-Reply-To: <1392650573-3390-1-git-send-email-pmladek@suse.cz>
Ftrace modifies function calls using Int3 breakpoints on x86. It patches
all functions in parallel to reduce the number of sync() calls. If some
function cannot be modified, it tries to recover and remove the other
pending breakpoints.
The recovery currently does not work on x86_64 because the address
is read-only. We need to use ftrace_write() that gets write access
via the kernel identity mapping. It is used everywhere else in the
code.
Signed-off-by: Petr Mladek <pmladek@suse.cz>
---
arch/x86/kernel/ftrace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index e7f3f3f565de..30d63c4a4195 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -449,7 +449,7 @@ static int remove_breakpoint(struct dyn_ftrace *rec)
update:
/* Put back the first byte */
- return probe_kernel_write((void *)ip, valid_ins, 1);
+ return ftrace_write(ip, valid_ins, 1);
}
static int add_update_code(unsigned long ip, unsigned const char *new)
--
1.8.4
next prev parent reply other threads:[~2014-02-17 15:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-17 15:22 [PATCH 0/4] x86: Fix ftrace recovery when code modification failed Petr Mladek
2014-02-17 15:22 ` [PATCH 1/4] x86: Clean up remove_breakpoint() in ftrace code Petr Mladek
2014-02-17 15:22 ` Petr Mladek [this message]
2014-02-17 15:22 ` [PATCH 3/4] x86: BUG when ftrace patching recovery fails Petr Mladek
2014-02-17 15:22 ` [PATCH 4/4] x86: Fix order of warning messages when ftrace modifies code Petr Mladek
2014-03-06 23:19 ` Steven Rostedt
2014-03-07 8:43 ` Petr Mládek
2014-03-07 18:15 ` Steven Rostedt
2014-03-07 18:18 ` Steven Rostedt
2014-03-10 8:37 ` Petr Mládek
2014-03-10 12:50 ` Steven Rostedt
2014-02-21 4:23 ` [PATCH 0/4] x86: Fix ftrace recovery when code modification failed Steven Rostedt
2014-02-21 16:33 ` Petr Mládek
2014-02-21 18:01 ` Steven Rostedt
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=1392650573-3390-3-git-send-email-pmladek@suse.cz \
--to=pmladek@suse.cz \
--cc=fweisbec@gmail.com \
--cc=jkosina@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=rostedt@goodmis.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: link
Be 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
all inboxes | Powered by JetHome®