Re: [PATCH v2] arm64: ftrace: use function_nocfi for _mcount as well
From: Will Deacon <will@kernel.org>
Date: 2021-10-08 08:05:56
Also in:
lkml, llvm
Hi Sumit, On Wed, Oct 06, 2021 at 11:05:52AM +0530, Sumit Garg wrote:
On Tue, 5 Oct 2021 at 21:05, Mark Rutland [off-list ref] wrote:quoted
On Tue, Oct 05, 2021 at 08:20:02AM -0700, Sami Tolvanen wrote:quoted
On Tue, Oct 5, 2021 at 5:37 AM Sumit Garg [off-list ref] wrote:quoted
diff --git a/arch/arm64/include/asm/ftrace.h b/arch/arm64/include/asm/ftrace.h index 91fa4baa1a93..347b0cc68f07 100644 --- a/arch/arm64/include/asm/ftrace.h +++ b/arch/arm64/include/asm/ftrace.h@@ -15,7 +15,7 @@ #ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS #define ARCH_SUPPORTS_FTRACE_OPS 1 #else -#define MCOUNT_ADDR ((unsigned long)_mcount) +#define MCOUNT_ADDR ((unsigned long)function_nocfi(_mcount)) #endif /* The BL at the callsite's adjusted rec->ip */ --2.17.1Clang >= 10 supports -fpatchable-function-entry and CFI requires Clang 12, so I assume this is only an issue if CONFIG_DYNAMIC_FTRACE_WITH_REGS is explicitly disabled?I don't believe it's possible to disable explicitly, since DYNAMIC_FTRACE_WITH_REGS isn't user selectable, and is def bool y, depending on HAVE_DYNAMIC_FTRACE_WITH_REGS.Ah, I see.quoted
Sumit, have you actually seen a problem, or was this found by inspection?Actually I have seen this ftrace problem with the android11-5.4-lts kernel and AOSP master user-space on db845c. The reason being kernel v5.4 LTS doesn't support ftrace with -fpatchable-function-entry on arm64. With the mainline, I haven't tried to reproduce this issue but it was rather by inspection that this needs to be fixed as well.quoted
If this isn't an issue in practice, we could add the funciton_nocfi() for consistency, but we should make that clear in the commit message, and drop the fixes tag.Sure, let me drop the fixes tag and update the commit description in v3 as mainline only enabled CFI_CLANG for arm64 when "-fpatchable-function-entry" is supported.
Did you post a v3? Just want to make sure I didn't miss it. Will _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel