Messages in this thread | | | Date | Tue, 15 Oct 2019 15:42:28 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v3 5/6] x86/ftrace: Use text_poke() |
| |
On Tue, Oct 15, 2019 at 09:28:02AM -0400, Steven Rostedt wrote: > On Fri, 11 Oct 2019 14:59:03 +0200 > Peter Zijlstra <peterz@infradead.org> wrote: > > > On Thu, Oct 10, 2019 at 07:28:19PM +0200, Peter Zijlstra wrote: > > > > > Really the best solution is to move all the poking into > > > ftrace_module_init(), before we mark it RO+X. That's what I'm going to > > > do for jump_label and static_call as well, I just need to add that extra > > > notifier callback. > > > > OK, so I started writing that patch... or rather, I wrote the patch and > > started on the Changelog when I ran into trouble describing why we need > > it. > > > > That is, I'm struggling to explain why we cannot flip > > prepare_coming_module() and complete_formation(). > > > > Yes, it breaks ftrace, but I'm thinking that is all it breaks. So let me > > see if we can cure that. > > You are mainly worried about making text that is executable into > read-write again. What if we kept my one patch that just changed the > module in ftrace_module_enable() from read-only to read-write, but > before we ever set it executable.
This still flips the protections back and forth, which is still really ugly. And afaict the only reason this is required is that set_all_modules_text_*() stuff.
So please, instead of tinkering around, lets just kill that horrible interface and be done with it. There's only 2 users left, fixing those can't be too hard.
| |