From: Peter Zijlstra <peterz@infradead.org> To: Dmitry Osipenko <digetx@gmail.com> Cc: Mark Rutland <mark.rutland@arm.com>, x86 <x86@kernel.org>, Denys Vlasenko <dvlasenk@redhat.com>, linux-tip-commits@vger.kernel.org, Brian Gerst <brgerst@gmail.com>, ard.biesheuvel@linaro.org, linux-kernel@vger.kernel.org, tip-bot2 for Peter Zijlstra <tip-bot2@linutronix.de>, Jon Hunter <jonathanh@nvidia.com>, rabin@rab.in, Linus Torvalds <torvalds@linux-foundation.org>, Thierry Reding <thierry.reding@gmail.com>, Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>, "linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>, james.morse@arm.com, Thomas Gleixner <tglx@linutronix.de>, Will Deacon <will@kernel.org>, Ingo Molnar <mingo@kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org> Subject: Re: [tip: core/kprobes] arm/ftrace: Use __patch_text() Date: Fri, 7 Feb 2020 12:27:20 +0100 [thread overview] Message-ID: <20200207112720.GF14914@hirez.programming.kicks-ass.net> (raw) In-Reply-To: <10cbfd9e-2f1f-0a0c-0160-afe6c2ccbebd@gmail.com> On Thu, Jan 23, 2020 at 12:26:46AM +0300, Dmitry Osipenko wrote: > 04.12.2019 11:33, tip-bot2 for Peter Zijlstra пишет: > > @@ -97,10 +94,7 @@ static int ftrace_modify_code(unsigned long pc, unsigned long old, > > return -EINVAL; > > } > > > > - if (probe_kernel_write((void *)pc, &new, MCOUNT_INSN_SIZE)) > > - return -EPERM; > > - > > - flush_icache_range(pc, pc + MCOUNT_INSN_SIZE); > > + __patch_text((void *)pc, new); > > > > return 0; > > } > > > > Hello, > > NVIDIA Tegra20/30 are not booting with CONFIG_FTRACE=y, but even with > CONFIG_FTRACE=n things are not working well. Ooh, I think I see. Can you try this: diff --git a/arch/arm/kernel/ftrace.c b/arch/arm/kernel/ftrace.c index 2a5ff69c28e6..10499d44964a 100644 --- a/arch/arm/kernel/ftrace.c +++ b/arch/arm/kernel/ftrace.c @@ -78,13 +78,10 @@ static int ftrace_modify_code(unsigned long pc, unsigned long old, { unsigned long replaced; - if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) { + if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) old = __opcode_to_mem_thumb32(old); - new = __opcode_to_mem_thumb32(new); - } else { + else old = __opcode_to_mem_arm(old); - new = __opcode_to_mem_arm(new); - } if (validate) { if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE)) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org> To: Dmitry Osipenko <digetx@gmail.com> Cc: linux-kernel@vger.kernel.org, tip-bot2 for Peter Zijlstra <tip-bot2@linutronix.de>, linux-tip-commits@vger.kernel.org, Will Deacon <will@kernel.org>, Thierry Reding <thierry.reding@gmail.com>, Jon Hunter <jonathanh@nvidia.com>, Andy Lutomirski <luto@kernel.org>, Borislav Petkov <bp@alien8.de>, Brian Gerst <brgerst@gmail.com>, Denys Vlasenko <dvlasenk@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>, Linus Torvalds <torvalds@linux-foundation.org>, Mark Rutland <mark.rutland@arm.com>, Thomas Gleixner <tglx@linutronix.de>, ard.biesheuvel@linaro.org, james.morse@arm.com, rabin@rab.in, Ingo Molnar <mingo@kernel.org>, x86 <x86@kernel.org>, "linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org> Subject: Re: [tip: core/kprobes] arm/ftrace: Use __patch_text() Date: Fri, 7 Feb 2020 12:27:20 +0100 [thread overview] Message-ID: <20200207112720.GF14914@hirez.programming.kicks-ass.net> (raw) In-Reply-To: <10cbfd9e-2f1f-0a0c-0160-afe6c2ccbebd@gmail.com> On Thu, Jan 23, 2020 at 12:26:46AM +0300, Dmitry Osipenko wrote: > 04.12.2019 11:33, tip-bot2 for Peter Zijlstra пишет: > > @@ -97,10 +94,7 @@ static int ftrace_modify_code(unsigned long pc, unsigned long old, > > return -EINVAL; > > } > > > > - if (probe_kernel_write((void *)pc, &new, MCOUNT_INSN_SIZE)) > > - return -EPERM; > > - > > - flush_icache_range(pc, pc + MCOUNT_INSN_SIZE); > > + __patch_text((void *)pc, new); > > > > return 0; > > } > > > > Hello, > > NVIDIA Tegra20/30 are not booting with CONFIG_FTRACE=y, but even with > CONFIG_FTRACE=n things are not working well. Ooh, I think I see. Can you try this: diff --git a/arch/arm/kernel/ftrace.c b/arch/arm/kernel/ftrace.c index 2a5ff69c28e6..10499d44964a 100644 --- a/arch/arm/kernel/ftrace.c +++ b/arch/arm/kernel/ftrace.c @@ -78,13 +78,10 @@ static int ftrace_modify_code(unsigned long pc, unsigned long old, { unsigned long replaced; - if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) { + if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) old = __opcode_to_mem_thumb32(old); - new = __opcode_to_mem_thumb32(new); - } else { + else old = __opcode_to_mem_arm(old); - new = __opcode_to_mem_arm(new); - } if (validate) { if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE))
next prev parent reply other threads:[~2020-02-07 11:27 UTC|newest] Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-11 13:12 [PATCH -v5 00/17] Rewrite x86/ftrace to use text_poke (and more) Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 01/17] x86/alternatives: Teach text_poke_bp() to emulate instructions Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 02/17] x86/alternatives: Update int3_emulate_push() comment Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 03/17] x86/alternatives,jump_label: Provide better text_poke() batching interface Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] x86/alternatives, jump_label: " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 04/17] x86/alternatives: Add and use text_gen_insn() helper Peter Zijlstra 2019-11-12 17:10 ` Steven Rostedt 2019-11-12 22:25 ` Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 05/17] x86/ftrace: Use text_poke() Peter Zijlstra 2019-11-12 18:25 ` Steven Rostedt 2019-11-12 22:24 ` Peter Zijlstra 2019-11-12 22:48 ` Steven Rostedt 2019-11-13 9:01 ` Peter Zijlstra 2019-11-13 14:27 ` Steven Rostedt 2019-11-14 13:18 ` Peter Zijlstra 2019-11-14 13:56 ` Steven Rostedt 2019-11-14 14:05 ` Peter Zijlstra 2019-11-13 8:53 ` Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-11-16 20:46 ` Borislav Petkov 2019-11-18 17:35 ` [PATCH] x86/ftrace: Mark ftrace_modify_code_direct() __ref Borislav Petkov 2019-11-18 17:52 ` Steven Rostedt 2019-11-19 9:55 ` [tip: core/kprobes] " tip-bot2 for Borislav Petkov 2019-12-04 8:33 ` tip-bot2 for Borislav Petkov 2019-12-04 8:33 ` [tip: core/kprobes] x86/ftrace: Use text_poke() tip-bot2 for Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 06/17] x86/mm: Remove set_kernel_text_r[ow]() Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:12 ` [PATCH -v5 07/17] x86/alternative: Add text_opcode_size() Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 08/17] x86/ftrace: Use text_gen_insn() Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 09/17] x86/alternative: Remove text_poke_loc::len Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 10/17] x86/alternative: Shrink text_poke_loc Peter Zijlstra 2019-11-15 9:43 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 11/17] x86/kprobes: Convert to text-patching.h Peter Zijlstra 2019-11-19 16:56 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 12/17] x86/kprobes: Fix ordering Peter Zijlstra 2019-11-13 14:31 ` Paul E. McKenney 2019-11-13 15:42 ` Mathieu Desnoyers 2019-11-14 13:53 ` Peter Zijlstra 2019-11-14 15:06 ` Mathieu Desnoyers 2019-11-14 15:13 ` Paul E. McKenney 2019-11-14 15:22 ` Mathieu Desnoyers 2019-11-14 15:28 ` Peter Zijlstra 2019-11-14 15:30 ` Mathieu Desnoyers 2019-11-14 15:42 ` Peter Zijlstra 2019-11-14 15:58 ` Peter Zijlstra 2019-11-19 16:56 ` [tip: core/kprobes] x86/kprobes: Fix ordering while text-patching tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 13/17] arm/ftrace: Use __patch_text_real() Peter Zijlstra 2019-11-11 16:47 ` Will Deacon 2019-11-11 17:19 ` Peter Zijlstra 2019-11-11 17:25 ` Peter Zijlstra 2019-11-12 11:29 ` Will Deacon 2019-11-13 9:26 ` [PATCH -v5mkII 13/17] arm/ftrace: Use __patch_text() Peter Zijlstra 2019-11-19 16:56 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2020-01-22 21:26 ` Dmitry Osipenko 2020-01-22 21:26 ` Dmitry Osipenko 2020-01-22 21:26 ` Dmitry Osipenko 2020-02-07 10:17 ` Peter Zijlstra 2020-02-07 10:17 ` Peter Zijlstra 2020-02-07 10:17 ` Peter Zijlstra 2020-02-07 10:26 ` Peter Zijlstra 2020-02-07 10:26 ` Peter Zijlstra 2020-02-07 10:26 ` Peter Zijlstra 2020-02-07 11:27 ` Peter Zijlstra [this message] 2020-02-07 11:27 ` Peter Zijlstra [not found] ` <20200207112720.GF14914-Nxj+rRp3nVydTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 2020-02-07 16:47 ` Dmitry Osipenko 2020-02-07 16:47 ` Dmitry Osipenko 2020-02-07 16:47 ` Dmitry Osipenko 2020-01-08 12:22 ` [PATCH -v5mkII 13/17] " Arnd Bergmann 2020-01-08 14:16 ` Steven Rostedt 2020-01-08 14:22 ` Arnd Bergmann 2019-11-11 13:13 ` [PATCH -v5 14/17] module: Remove set_all_modules_text_*() Peter Zijlstra 2019-11-19 16:56 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 15/17] ftrace: Rework event_create_dir() Peter Zijlstra 2019-11-14 14:07 ` Steven Rostedt 2019-11-19 16:56 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 16/17] x86/kprobe: Add comments to arch_{,un}optimize_kprobes() Peter Zijlstra 2019-11-19 16:56 ` [tip: core/kprobes] " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 13:13 ` [PATCH -v5 17/17] x86/alternative: Use INT3_INSN_SIZE Peter Zijlstra 2019-11-19 16:56 ` [tip: core/kprobes] x86/alternatives: " tip-bot2 for Peter Zijlstra 2019-12-04 8:33 ` tip-bot2 for Peter Zijlstra 2019-11-11 19:47 ` [PATCH -v5 00/17] Rewrite x86/ftrace to use text_poke (and more) Alexei Starovoitov 2019-11-11 20:39 ` Peter Zijlstra 2019-11-11 20:42 ` Peter Zijlstra 2019-11-11 20:56 ` Alexei Starovoitov 2019-11-12 18:26 ` Steven Rostedt 2019-11-25 3:55 ` Masami Hiramatsu 2019-11-25 6:47 ` Masami Hiramatsu 2019-11-25 17:32 ` Steven Rostedt 2019-11-26 0:11 ` Masami Hiramatsu 2019-11-26 8:58 ` Masami Hiramatsu 2019-11-26 9:58 ` Masami Hiramatsu 2019-11-26 23:48 ` Masami Hiramatsu [not found] ` <CAADnVQK4twuXzFhD-qLHmCVK0n1h-GDENQLu+4PVV3Hp++R6kQ@mail.gmail.com> 2019-11-27 4:32 ` Alexei Starovoitov 2019-11-27 5:01 ` Alexei Starovoitov 2019-11-27 6:41 ` 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=20200207112720.GF14914@hirez.programming.kicks-ass.net \ --to=peterz@infradead.org \ --cc=ard.biesheuvel@linaro.org \ --cc=bp@alien8.de \ --cc=brgerst@gmail.com \ --cc=digetx@gmail.com \ --cc=dvlasenk@redhat.com \ --cc=hpa@zytor.com \ --cc=james.morse@arm.com \ --cc=jonathanh@nvidia.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=linux-tip-commits@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mark.rutland@arm.com \ --cc=mingo@kernel.org \ --cc=rabin@rab.in \ --cc=tglx@linutronix.de \ --cc=thierry.reding@gmail.com \ --cc=tip-bot2@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=will@kernel.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: linkBe 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.