From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70141C4167B for ; Fri, 9 Dec 2022 15:41:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229995AbiLIPl0 convert rfc822-to-8bit (ORCPT ); Fri, 9 Dec 2022 10:41:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229460AbiLIPlY (ORCPT ); Fri, 9 Dec 2022 10:41:24 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D561AFD05 for ; Fri, 9 Dec 2022 07:41:22 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6146B62297 for ; Fri, 9 Dec 2022 15:41:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D8E1C433D2; Fri, 9 Dec 2022 15:41:19 +0000 (UTC) Date: Fri, 9 Dec 2022 10:41:17 -0500 From: Steven Rostedt To: Peter Zijlstra Cc: Thomas Gleixner , linux-kernel@vger.kernel.org, x86@kernel.org, Linus Torvalds , Tim Chen , Josh Poimboeuf , Andrew Cooper , Pawan Gupta , Johannes Wikner , Alyssa Milburn , Jann Horn , "H.J. Lu" , Joao Moreira , Joseph Nuzman , Juergen Gross , Masami Hiramatsu , Alexei Starovoitov , Daniel Borkmann , K Prateek Nayak , Eric Dumazet Subject: Re: [PATCH v3 56/59] x86/ftrace: Remove ftrace_epilogue() Message-ID: <20221209104117.17e03842@gandalf.local.home> In-Reply-To: <20220915111148.719080593@infradead.org> References: <20220915111039.092790446@infradead.org> <20220915111148.719080593@infradead.org> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 15 Sep 2022 13:11:35 +0200 Peter Zijlstra wrote: > From: Peter Zijlstra > > Remove the weird jumps to RET and simply use RET. > > This then promotes ftrace_stub() to a real function; which becomes > important for kcfi. > > Signed-off-by: Peter Zijlstra (Intel) > Signed-off-by: Thomas Gleixner > Signed-off-by: Peter Zijlstra (Intel) > Moving my setup to a new machine, I found I had this patch queued and never pushed out :-p -- Steve >From e55c8c52510be3ac996f3567e1d2dbdf76ed23de Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (Google)" Date: Mon, 18 Jul 2022 16:01:07 -0400 Subject: [PATCH] ftrace/x86: Remove jumps to ftrace_epilogue The jumps to ftrace_epilogue were done as a way to make sure all the function tracing trampolines ended at the function graph trampoline, as the ftrace_epilogue was the location that it would handle that. With the advent of function graph tracer now being just one of the callbacks of the function tracer there is no more requirement that all trampolines go to a single location. Remove the jumps to the ftrace_epilogue and replace them with return statements. Note, the ftrace_epilogue can probably be renamed to ftrace_stub and the weak logic for that could probably be removed. But lets leave that as a separate change. Signed-off-by: Steven Rostedt (Google) --- arch/x86/kernel/ftrace_64.S | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/arch/x86/kernel/ftrace_64.S b/arch/x86/kernel/ftrace_64.S index dfeb227de561..8f225fafa5fb 100644 --- a/arch/x86/kernel/ftrace_64.S +++ b/arch/x86/kernel/ftrace_64.S @@ -173,7 +173,9 @@ SYM_INNER_LABEL(ftrace_call, SYM_L_GLOBAL) SYM_INNER_LABEL(ftrace_caller_end, SYM_L_GLOBAL) ANNOTATE_NOENDBR - jmp ftrace_epilogue + UNWIND_HINT_FUNC + ENDBR + RET SYM_FUNC_END(ftrace_caller); STACK_FRAME_NON_STANDARD_FP(ftrace_caller) @@ -261,15 +263,9 @@ SYM_INNER_LABEL(ftrace_regs_caller_jmp, SYM_L_GLOBAL) /* Restore flags */ popfq - /* - * As this jmp to ftrace_epilogue can be a short jump - * it must not be copied into the trampoline. - * The trampoline will add the code to jump - * to the return. - */ SYM_INNER_LABEL(ftrace_regs_caller_end, SYM_L_GLOBAL) ANNOTATE_NOENDBR - jmp ftrace_epilogue + jmp 2f /* Swap the flags with orig_rax */ 1: movq MCOUNT_REG_SIZE(%rsp), %rdi @@ -279,8 +275,10 @@ SYM_INNER_LABEL(ftrace_regs_caller_end, SYM_L_GLOBAL) restore_mcount_regs 8 /* Restore flags */ popfq +2: UNWIND_HINT_FUNC - jmp ftrace_epilogue + ENDBR + RET SYM_FUNC_END(ftrace_regs_caller) STACK_FRAME_NON_STANDARD_FP(ftrace_regs_caller) -- 2.35.1