On Mon, Feb 23, 2026 at 4:29 PM Conor Dooley <[email protected]> wrote: > > 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?
Yes, I will send a patch with fixes tag. Thanks, Puranjay
