On Mon, Feb 23, 2026 at 03:41:26PM +0000, Puranjay Mohan wrote: > On Mon, Feb 23, 2026 at 3:28 PM Conor Dooley <[email protected]> > wrote: > > > > On Mon, Feb 23, 2026 at 03:18:17PM +0000, Puranjay Mohan wrote: > > > On Sat, Feb 21, 2026 at 12:15 PM Conor Dooley <[email protected]> wrote: > > > > > > > > Hey, > > > > > > > > On Tue, Apr 08, 2025 at 02:08:34AM +0800, Andy Chiu wrote: > > > > > From: Puranjay Mohan <[email protected]> > > > > > > > > > > This patch enables support for DYNAMIC_FTRACE_WITH_CALL_OPS on RISC-V. > > > > > This allows each ftrace callsite to provide an ftrace_ops to the > > > > > common > > > > > ftrace trampoline, allowing each callsite to invoke distinct tracer > > > > > functions without the need to fall back to list processing or to > > > > > allocate custom trampolines for each callsite. This significantly > > > > > speeds > > > > > up cases where multiple distinct trace functions are used and > > > > > callsites > > > > > are mostly traced by a single tracer.
> > > > > > > > > > Signed-off-by: Puranjay Mohan <[email protected]> > > > > > > > > > > [update kconfig, asm, refactor] > > > > > > > > > > Signed-off-by: Andy Chiu <[email protected]> > > > > > Tested-by: Björn Töpel <[email protected]> > > > > > > > > I bisected a boot failure to this commit [c217157bcd1df ("riscv: > > > > Implement HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS")] yesterday, that appears > > > > to be affecting all LLVM versions that I currently have installed. From > > > > some initial testing of Kconfig options, it looks like the issue is > > > > CFI_CLANG related because when I disable CFI_CLANG things work once > > > > more. Since this option depends on !CFI_CLANG, but is def_bool y, I > > > > modified Kconfig to force disable it at all times and tested > > > > !DYNAMIC_FTRACE_WITH_CALL_OPS && !CFG_CLANG, which did boot. > > > > > > > > I dunno anything about what's going on in this patch, but so little in > > > > it relates to having DYNAMIC_FTRACE_WITH_CALL_OPS, that I was able to > > > > figure out that the problem is -fpatchable-function-entry=8,4 > > > > > > > > > > DYNAMIC_FTRACE_WITH_CALL_OPS can't work together with CFI_CLANG. > > > > > > arm64 has: > > > > > > select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS \ > > > if (DYNAMIC_FTRACE_WITH_ARGS && !CFI && \ > > > (CC_IS_CLANG || !CC_OPTIMIZE_FOR_SIZE)) > > > > > > would need something similar for riscv if not already done. > > > > > > I think you've misunderstood my email. We already have: > > > > select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS if > > (DYNAMIC_FTRACE_WITH_ARGS && !CFI) > > > > The problem is that the patch broke using CFI_CLANG, due to the > > fpatchable-function-entry change. > > > Yeah, sorry I did not see the patch, > the original one I sent had: > > +ifeq ($(CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS), y) > +ifeq ($(CONFIG_RISCV_ISA_C),y) > + CC_FLAGS_FTRACE := -fpatchable-function-entry=8,4 > +else > + CC_FLAGS_FTRACE := -fpatchable-function-entry=4,2 > +endif > +else > > > The basic Idea is that we can't put nops before the function entry > when using CFI_CLANG, because they both interfere with each other. > > the fix should be something like: Ye, this is what Nathan and I both did locally, give or take. I just wasn't sure if this was actually correct to do or if it was just papering over an issue with our CFI support. Do you want to send this as a patch? > > -- >8 -- > > diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile > index 371da75a47f9..94100810a6a4 100644 > --- a/arch/riscv/Makefile > +++ b/arch/riscv/Makefile > @@ -14,11 +14,19 @@ endif > ifeq ($(CONFIG_DYNAMIC_FTRACE),y) > LDFLAGS_vmlinux += --no-relax > KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY > +ifeq ($(CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS),y) > ifeq ($(CONFIG_RISCV_ISA_C),y) > CC_FLAGS_FTRACE := -fpatchable-function-entry=8,4 > else > CC_FLAGS_FTRACE := -fpatchable-function-entry=4,2 > endif > +else > +ifeq ($(CONFIG_RISCV_ISA_C),y) > + CC_FLAGS_FTRACE := -fpatchable-function-entry=4 > +else > + CC_FLAGS_FTRACE := -fpatchable-function-entry=2 > +endif > +endif > endif > > ifeq ($(CONFIG_CMODEL_MEDLOW),y) > > -- 8< -- > > > Thanks, > Puranjay
signature.asc
Description: PGP signature
