Re: [PATCH 1/4] x86/thread_info: introduce ->ftrace_int3_stack member

From: Steven Rostedt
Date: Sun Apr 28 2019 - 15:43:52 EST


On Sun, 28 Apr 2019 11:08:34 -0700
Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:

> >
> > Perhaps adding another slot into pt_regs that gets used by int3 to
> > store a slot to emulate a call on return?
> >
> >
>
> Thatâs not totally nuts, although finding pt_regs isnât entirely trivial.

I meant on the int3 handler (which stores the pt_regs).

>
> I still think I prefer an approach where we just emulate the call directly.

Then, on the return of int3, if there's anything in that slot, then we
could possibly shift the exception handler frame (that was added by the
hardware), insert the slot data into the top of the stack, and then
call iret (which the int3 handler, would add the return ip to be the
function being called), which would in essence emulate the call directly.

I believe the complexity comes from the exception frame added by the
hardware is where we need to put the return of the call for the
emulation.

-- Steve