From: Peter Zijlstra <peterz@infradead.org> To: Jessica Yu <jeyu@kernel.org> Cc: Steven Rostedt <rostedt@goodmis.org>, x86@kernel.org, linux-kernel@vger.kernel.org, mhiramat@kernel.org, bristot@redhat.com, jbaron@akamai.com, torvalds@linux-foundation.org, tglx@linutronix.de, mingo@kernel.org, namit@vmware.com, hpa@zytor.com, luto@kernel.org, ard.biesheuvel@linaro.org, jpoimboe@redhat.com, mbenes@suse.cz Subject: Re: [PATCH v3 5/6] x86/ftrace: Use text_poke() Date: Tue, 15 Oct 2019 16:11:11 +0200 Message-ID: <20191015141111.GP2359@hirez.programming.kicks-ass.net> (raw) In-Reply-To: <20191015135634.GK2328@hirez.programming.kicks-ass.net> On Tue, Oct 15, 2019 at 03:56:34PM +0200, Peter Zijlstra wrote: > On Tue, Oct 15, 2019 at 03:07:40PM +0200, Jessica Yu wrote: > > > Once this ftrace thing is sorted, we'll change x86 to _refuse_ to make > > > executable (kernel) memory writable. > > > > Not sure if relevant, but just thought I'd clarify: IIRC, > > klp_module_coming() is not poking the coming module, but it calls > > module_enable_ro() on itself (the livepatch module) so it can apply > > relocations and such on the new code, which lives inside the livepatch > > module, and it needs to possibly do this numerous times over the > > lifetime of the patch module for any coming module it is responsible > > for patching (i.e., call module_enable_ro() on the patch module, not > > necessarily the coming module). So I am not be sure why > > klp_module_coming() should be moved before complete_formation(). I > > hope I'm remembering the details correctly, livepatch folks feel free > > to chime in if I'm incorrect here. > > You mean it does module_disable_ro() ? That would be broken and it needs > to be fixed. Can some livepatch person explain what it does and why? mbenes confirmed; what would be needed is for the live-patch module to have all module dependent parts to be in their own section and have the sections be page-aligned. Then we can do the protection on sections instead of on the whole module. Damn, and I thought I was so close to getting W^X sorted :/
next prev parent reply index Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-07 9:02 [RESEND] everything text-poke: ftrace, modules, static_call and jump_label Peter Zijlstra 2019-10-07 8:17 ` [PATCH v3 0/6] Rewrite x86/ftrace to use text_poke() Peter Zijlstra 2019-10-07 8:17 ` [PATCH v3 1/6] x86/alternatives: Teach text_poke_bp() to emulate instructions Peter Zijlstra 2019-10-08 14:29 ` Borislav Petkov 2019-10-08 14:40 ` Steven Rostedt 2019-10-08 14:50 ` Borislav Petkov 2019-10-08 14:48 ` Peter Zijlstra 2019-10-08 14:54 ` Borislav Petkov 2019-10-08 15:04 ` Steven Rostedt 2019-10-08 15:24 ` Borislav Petkov 2019-10-09 12:03 ` Daniel Bristot de Oliveira 2019-10-07 8:17 ` [PATCH v3 2/6] x86/alternatives: Update int3_emulate_push() comment Peter Zijlstra 2019-10-07 8:17 ` [PATCH v3 3/6] x86/alternatives,jump_label: Provide better text_poke() batching interface Peter Zijlstra 2019-10-09 12:04 ` Daniel Bristot de Oliveira 2019-10-07 8:17 ` [PATCH v3 4/6] x86/alternatives: Add and use text_gen_insn() helper Peter Zijlstra 2019-10-08 6:23 ` Masami Hiramatsu 2019-10-08 8:15 ` Peter Zijlstra 2019-10-07 8:17 ` [PATCH v3 5/6] x86/ftrace: Use text_poke() Peter Zijlstra 2019-10-08 14:43 ` Steven Rostedt 2019-10-08 17:11 ` Peter Zijlstra 2019-10-08 17:27 ` Steven Rostedt 2019-10-10 2:41 ` Steven Rostedt 2019-10-10 9:20 ` Peter Zijlstra 2019-10-10 13:19 ` Steven Rostedt 2019-10-10 14:05 ` Peter Zijlstra 2019-10-10 15:54 ` Steven Rostedt 2019-10-10 17:28 ` Peter Zijlstra 2019-10-10 17:48 ` Steven Rostedt 2019-10-11 10:45 ` Peter Zijlstra 2019-10-11 10:47 ` Peter Zijlstra 2019-10-11 10:50 ` Peter Zijlstra 2019-10-11 12:59 ` Peter Zijlstra 2019-10-11 13:33 ` Steven Rostedt 2019-10-11 13:45 ` Peter Zijlstra 2019-10-15 13:07 ` Jessica Yu 2019-10-15 13:56 ` Peter Zijlstra 2019-10-15 14:11 ` Peter Zijlstra [this message] 2019-10-15 14:13 ` Miroslav Benes 2019-10-15 15:06 ` Joe Lawrence 2019-10-15 15:31 ` Jessica Yu 2019-10-15 22:17 ` Joe Lawrence 2019-10-15 22:27 ` Steven Rostedt 2019-10-16 7:42 ` Peter Zijlstra 2019-10-16 10:15 ` Miroslav Benes 2019-10-21 15:05 ` Josh Poimboeuf 2020-01-20 16:50 ` Josh Poimboeuf 2020-01-21 8:35 ` Miroslav Benes 2020-01-21 16:10 ` Josh Poimboeuf 2020-01-22 10:09 ` Miroslav Benes 2020-01-22 21:42 ` Josh Poimboeuf 2020-01-28 9:28 ` Miroslav Benes 2020-01-28 15:00 ` Josh Poimboeuf 2020-01-28 15:40 ` Petr Mladek 2020-01-28 17:02 ` Josh Poimboeuf 2020-01-29 0:46 ` Jiri Kosina 2020-01-29 2:17 ` Josh Poimboeuf 2020-01-29 3:14 ` Jiri Kosina 2020-01-29 12:28 ` Miroslav Benes 2020-01-29 15:59 ` Josh Poimboeuf 2020-01-30 9:53 ` Petr Mladek 2020-01-30 14:17 ` Josh Poimboeuf 2020-01-31 7:17 ` Petr Mladek 2020-01-22 12:15 ` Miroslav Benes 2020-01-22 15:05 ` Miroslav Benes 2020-01-22 22:03 ` Josh Poimboeuf 2020-01-23 10:19 ` Martin Jambor 2019-10-16 7:49 ` Peter Zijlstra 2019-10-16 10:20 ` Miroslav Benes 2019-10-16 13:29 ` Miroslav Benes 2019-10-18 13:03 ` Jessica Yu 2019-10-18 13:40 ` Petr Mladek 2019-10-21 14:14 ` Jessica Yu 2019-10-21 15:31 ` Josh Poimboeuf 2019-10-22 8:27 ` Miroslav Benes 2019-10-22 14:31 ` Josh Poimboeuf 2019-10-23 9:04 ` Miroslav Benes 2019-10-16 6:51 ` Miroslav Benes 2019-10-16 9:23 ` Peter Zijlstra 2019-10-16 9:36 ` Jessica Yu 2019-10-16 9:51 ` Peter Zijlstra 2019-10-16 12:39 ` Peter Zijlstra 2019-10-22 8:45 ` Miroslav Benes 2019-10-15 14:42 ` Peter Zijlstra 2019-10-15 18:31 ` Peter Zijlstra 2019-10-15 15:51 ` Jessica Yu 2019-10-15 13:28 ` Steven Rostedt 2019-10-15 13:42 ` Peter Zijlstra 2019-10-15 16:09 ` Jessica Yu 2019-10-07 8:17 ` [PATCH v3 6/6] x86/mm: Remove set_kernel_text_r[ow]() Peter Zijlstra 2019-10-08 15:07 ` [PATCH v3 0/6] Rewrite x86/ftrace to use text_poke() Steven Rostedt 2019-10-07 8:25 ` [PATCH v2 0/4] Propagate module notifier errors Peter Zijlstra 2019-10-07 8:25 ` [PATCH v2 1/4] notifier: Fix broken error handling pattern Peter Zijlstra 2019-10-10 22:01 ` Rafael J. Wysocki 2019-10-07 8:25 ` [PATCH v2 2/4] module: Fix up module_notifier return values Peter Zijlstra 2019-10-23 19:25 ` Steven Rostedt 2019-10-07 8:25 ` [PATCH v2 3/4] module: Properly propagate MODULE_STATE_COMING failure Peter Zijlstra 2019-10-08 13:08 ` Miroslav Benes 2019-10-07 8:25 ` [PATCH v2 4/4] jump_label,module: Fix module lifetime for __jump_label_mod_text_reserved Peter Zijlstra 2019-10-23 19:29 ` Steven Rostedt 2019-10-07 8:27 ` [PATCH v2 00/13] Add static_call() Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 01/13] compiler.h: Make __ADDRESSABLE() symbol truly unique Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 02/13] static_call: Add basic static call infrastructure Peter Zijlstra 2019-10-07 11:33 ` Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 03/13] static_call: Add inline " Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 04/13] static_call: Avoid kprobes on inline static_call()s Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 05/13] x86/static_call: Add out-of-line static call implementation Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 06/13] x86/static_call: Add inline static call implementation for x86-64 Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 07/13] static_call: Simple self-test Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 08/13] tracepoints: Use static_call Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 09/13] x86/alternatives: Teach text_poke_bp() to emulate RET Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 10/13] static_call: Add static_cond_call() Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 11/13] static_call: Handle tail-calls Peter Zijlstra 2019-10-07 8:27 ` [PATCH v2 12/13] static_call: Allow early init Peter Zijlstra 2019-10-07 8:27 ` [RFC][PATCH v2 13/13] x86/perf, static_call: Optimize x86_pmu methods Peter Zijlstra 2019-10-07 11:33 ` [PATCH v2 00/13] Add static_call() Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 0/9] Variable size jump_label support Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 1/9] jump_label, x86: Strip ASM " Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 2/9] jump_label, x86: Factor out the __jump_table generation Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 3/9] jump_label, x86: Remove init NOP optimization Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 4/9] jump_label, x86: Improve error when we fail expected text Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 5/9] jump_label, x86: Introduce jump_entry_size() Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 6/9] jump_label, x86: Add variable length patching support Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 7/9] jump_label,objtool: Validate variable size jump labels Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 8/9] jump_label,objtool: Generate possible statistics Peter Zijlstra 2019-10-07 8:44 ` [RFC][PATCH 9/9] jump_label, x86: Enable JMP8/NOP2 support Peter Zijlstra 2019-10-07 12:07 ` [RFC][PATCH 0/9] Variable size jump_label support Peter Zijlstra 2019-10-07 12:55 ` Ingo Molnar 2019-10-07 15:08 ` 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=20191015141111.GP2359@hirez.programming.kicks-ass.net \ --to=peterz@infradead.org \ --cc=ard.biesheuvel@linaro.org \ --cc=bristot@redhat.com \ --cc=hpa@zytor.com \ --cc=jbaron@akamai.com \ --cc=jeyu@kernel.org \ --cc=jpoimboe@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mbenes@suse.cz \ --cc=mhiramat@kernel.org \ --cc=mingo@kernel.org \ --cc=namit@vmware.com \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.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
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git