On Wed, Mar 15, 2017 at 03:55:30PM -0400, Steven Rostedt wrote: > From: "Steven Rostedt (VMware)" <[email protected]> > > The function hook ftrace_caller does not create its own stack frame, and > this causes the ftrace stack trace to miss the first function when doing > stack traces. > > # echo schedule:stacktrace > /sys/kernel/tracing/set_ftrace_filter > > Before: > <idle>-0 [002] .N.. 29.865807: <stack trace> > => cpu_startup_entry > => start_secondary > => startup_32_smp > <...>-7 [001] .... 29.866509: <stack trace> > => kthread > => ret_from_fork > <...>-1 [000] .... 29.865377: <stack trace> > => poll_schedule_timeout > => do_select > => core_sys_select > => SyS_select > => do_fast_syscall_32 > => entry_SYSENTER_32 > > After: > <idle>-0 [002] .N.. 31.234853: <stack trace> > => do_idle > => cpu_startup_entry > => start_secondary > => startup_32_smp > <...>-7 [003] .... 31.235140: <stack trace> > => rcu_gp_kthread > => kthread > => ret_from_fork > <...>-1819 [000] .... 31.264172: <stack trace> > => schedule_hrtimeout_range > => poll_schedule_timeout > => do_sys_poll > => SyS_ppoll > => do_fast_syscall_32 > => entry_SYSENTER_32 > > Signed-off-by: Steven Rostedt (VMware) <[email protected]> > --- > arch/x86/kernel/ftrace_32.S | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/ftrace_32.S b/arch/x86/kernel/ftrace_32.S > index 4ff30f31f0a5..73d61a62649d 100644 > --- a/arch/x86/kernel/ftrace_32.S > +++ b/arch/x86/kernel/ftrace_32.S > @@ -17,12 +17,19 @@ ENTRY(mcount) > END(mcount) > > ENTRY(ftrace_caller) > + > + pushl %ebp > + movl %esp, %ebp > +
The operands for the above two instructions should be vertically aligned like the rest of the code. Otherwise: Reviewed-by: Josh Poimboeuf <[email protected]> -- Josh

