On Thu, May 09, 2019 at 01:37:42PM -0400, Steven Rostedt wrote:
On Thu, May 09, 2019 at 10:14:31AM +0200, Peter Zijlstra wrote:
Right; I already fixed that in my patch changing i386's pt_regs.
But what I'd love to do is something like the belwo patch, and make all the trampolines (very much including ftrace) use that. Such that we then only have 1 copy of this magic (well, 2 because x86_64 also needs an implementation of this of course).
Changing ftrace over to this would be a little more work but it can easily chain things a little to get its original context back:
ENTRY(ftrace_regs_caller) GLOBAL(ftrace_regs_func) push ftrace_stub push ftrace_regs_handler
Note, ftrace_stub is dynamically modified to remove any indirect calls.
Yeah, I realized that a few hours after I send this out; as you might have seen by the IRC chatter on this.
Still, maybe we can wrap the thing in a .macro and reuse things that way. Because I really hate there are at least 3 (x2 for x86_64) copies of this around.