On Mon, Mar 21, 2022 at 12:45:51PM -0400, Steven Rostedt wrote: > On Mon, 21 Mar 2022 17:40:32 +0100 > Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > func_B: > > call __fentry__ /* push func_B */ > > ... > > call __fexit__ /* pop 1 + tails */ > > ret > > > > func_A: > > call __fentry__ /* push func_A */ > > ... > > call __ftail__ /* mark func_A tail */ > > jmp func_B > > > > func_C: > > call __fentry__ /* push func_C */ > > call func_A; > > ... > > call __fexit__ /* pop 1 + tails */ > > ret; > > This also assumes that we need to trace everything that is marked. I > mentioned in another email, what do we do if we only trace funcA? Like I said later on; if we inhibit tail-calls to notrace, this goes away.