From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753922AbdCOVUL (ORCPT ); Wed, 15 Mar 2017 17:20:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49326 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751416AbdCOVUJ (ORCPT ); Wed, 15 Mar 2017 17:20:09 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 8F56A201FB Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jpoimboe@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 8F56A201FB Date: Wed, 15 Mar 2017 16:13:08 -0500 From: Josh Poimboeuf To: Steven Rostedt Cc: linux-kernel@vger.kernel.org, Ingo Molnar , Andrew Morton , Thomas Gleixner , Peter Zijlstra , Masami Hiramatsu , "H. Peter Anvin" , Andy Lutomirski , Linus Torvalds Subject: Re: [RFC][PATCH 3/5] ftrace/x86_32: Add stack frame pointer to ftrace_caller Message-ID: <20170315211308.nprwbpmrzuwpvire@treble> References: <20170315195527.703131481@goodmis.org> <20170315200255.407535953@goodmis.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20170315200255.407535953@goodmis.org> User-Agent: Mutt/1.6.0.1 (2016-04-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 15 Mar 2017 21:13:11 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 15, 2017 at 03:55:30PM -0400, Steven Rostedt wrote: > From: "Steven Rostedt (VMware)" > > 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: > -0 [002] .N.. 29.865807: > => cpu_startup_entry > => start_secondary > => startup_32_smp > <...>-7 [001] .... 29.866509: > => kthread > => ret_from_fork > <...>-1 [000] .... 29.865377: > => poll_schedule_timeout > => do_select > => core_sys_select > => SyS_select > => do_fast_syscall_32 > => entry_SYSENTER_32 > > After: > -0 [002] .N.. 31.234853: > => do_idle > => cpu_startup_entry > => start_secondary > => startup_32_smp > <...>-7 [003] .... 31.235140: > => rcu_gp_kthread > => kthread > => ret_from_fork > <...>-1819 [000] .... 31.264172: > => schedule_hrtimeout_range > => poll_schedule_timeout > => do_sys_poll > => SyS_ppoll > => do_fast_syscall_32 > => entry_SYSENTER_32 > > Signed-off-by: Steven Rostedt (VMware) > --- > 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 -- Josh