From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757572AbdCVBva (ORCPT ); Tue, 21 Mar 2017 21:51:30 -0400 Received: from smtprelay0014.hostedemail.com ([216.40.44.14]:57429 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751858AbdCVBv3 (ORCPT ); Tue, 21 Mar 2017 21:51:29 -0400 X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,rostedt@goodmis.org,:::::::::::::::::::,RULES_HIT:41:69:355:379:541:599:800:960:973:988:989:1260:1277:1311:1313:1314:1345:1359:1437:1515:1516:1518:1535:1543:1593:1594:1605:1711:1730:1747:1777:1792:1801:2393:2553:2559:2562:2691:2895:3138:3139:3140:3141:3142:3865:3866:3867:3868:3870:3871:3872:3873:3874:4321:4605:5007:6119:6261:7522:7875:7903:10004:10400:10848:10967:11026:11232:11473:11657:11658:11914:12043:12266:12291:12295:12296:12438:12555:12740:12760:12895:13255:13439:14096:14097:14181:14659:14721:21067:21080:21365:21433:21434:21451:30012:30022:30054:30055:30070:30090:30091,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:1,LUA_SUMMARY:none X-HE-Tag: boot83_45405a8c1fa4f X-Filterd-Recvd-Size: 5004 Date: Tue, 21 Mar 2017 18:51:13 -0700 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Ingo Molnar , Andrew Morton , Thomas Gleixner , Peter Zijlstra , Masami Hiramatsu , "H. Peter Anvin" , Andy Lutomirski , Josh Poimboeuf , Linus Torvalds Subject: Re: [PATCH 0/6 v4] [GIT PULL] ftrace/x86: Ftrace cleanup and add support for -mfentry on x86_32 Message-ID: <20170321185113.5bf9b476@vmware.local.home> In-Reply-To: <20170322013502.448616656@goodmis.org> References: <20170322013502.448616656@goodmis.org> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Bah, I forgot to add the "v4" in the subject (like I did for this email). -- Steve On Tue, 21 Mar 2017 21:35:02 -0400 Steven Rostedt wrote: > [ > Ingo, Thomas or H.Peter, > > I believe this is all set to go now. I updated those patches that > Linus commented on and I don't believe there are any more issues. I > ran this through several tests (although some of my tests are failing > due to bugs introduced by others in 4.11-rc2). You can take this as a > patch series, or you can pull from my tree defined below. It's based > on 4.11-rc2 as I noticed that tip/x86/core is rather outdated, and > Linus is fine with basing off of his tagged releases. > ] > > > With the issues of gcc screwing around with the mcount stack frame > causing function graph tracer to panic on x86_32, and with Linus > saying that we should start deprecating mcount (at least on x86), I > figured that x86_32 needs to support fentry. > > First, I renamed mcount_64.S to ftrace_64.S. As we want to get away > from mcount, having the ftrace code in a file called mcount seems > rather backwards. > > Next I moved the ftrace code out of entry_32.S. It's not in entry_64.S > and it does not belong in entry_32.S. > > I noticed that the x86_32 code has the same issue as the x86_64 did > in the past with respect to a stack frame. I fixed that just for the > main ftrace_caller. The ftrace_regs_caller is rather special, and so > is function graph tracing. > > I realized the ftrace_regs_caller code was complex due to me > aggressively saving flags, even though I could still do push, lea and > mov without changing them. That made the logic a little nicer. > > Finally I added the fentry code. > > I tested this with an older compiler (for mcount) with and without > FRAME_POINTER set. I also did it with a new compiler (with fentry), > with and without FRAME_POINTER. I tested function tracing, stack > tracing, function_graph tracing, and kprobes (as that uses the > ftrace_regs_caller). > > Please pull (or take the patch series) from: > > > git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git > tip/x86/ftrace > > Head SHA1: e086b1da846b8e53f4de11e38d02d05b1ec5db58 > > > Steven Rostedt (VMware) (6): > ftrace/x86_64: Rename mcount_64.S to ftrace_64.S > ftrace/x86_32: Move the ftrace specific code out of entry_32.S > ftrace/x86_32: Add stack frame pointer to ftrace_caller > ftrace/x86_32: Clean up ftrace_regs_caller > ftrace/x86_32: Add -mfentry support to x86_32 with > DYNAMIC_FTRACE set ftrace/x86: Use Makefile logic instead of #ifdef > for compiling ftrace_*.o > > ---- > Changes since v3: > > * Changed comment about regs being skipped (Josh Poimboeuf) > > * Change subject line to fix typo (Josh Poimboeuf) > > > arch/x86/Kconfig | 2 +- > arch/x86/entry/entry_32.S | 169 ------------------ > arch/x86/kernel/Makefile | 5 +- > arch/x86/kernel/ftrace_32.S | 246 > +++++++++++++++++++++++++++ arch/x86/kernel/{mcount_64.S => > ftrace_64.S} | 4 - 5 files changed, 250 insertions(+), 176 > deletions(-) create mode 100644 arch/x86/kernel/ftrace_32.S > rename arch/x86/kernel/{mcount_64.S => ftrace_64.S} (99%) > > Diff against v3: > > > diff --git a/arch/x86/kernel/ftrace_32.S b/arch/x86/kernel/ftrace_32.S > index 4d52e0d49e26..de50c9084d16 100644 > --- a/arch/x86/kernel/ftrace_32.S > +++ b/arch/x86/kernel/ftrace_32.S > @@ -167,7 +167,7 @@ GLOBAL(ftrace_regs_call) > popl %gs > > /* use lea to not affect flags */ > - lea 3*4(%esp), %esp /* Skip > orig_ax, ip and flags */ > + lea 3*4(%esp), %esp /* Skip > orig_ax, ip and cs */ > jmp .Lftrace_ret > #else /* ! CONFIG_DYNAMIC_FTRACE */