On Mon, Aug 15, 2022 at 05:28:02PM +0200, Peter Zijlstra wrote: > On Mon, Aug 15, 2022 at 08:17:42AM -0700, Alexei Starovoitov wrote: > > It's hiding a fake function from ftrace, since it's not a function > > and ftrace infra shouldn't show it tracing logs. > > In other words it's a _notrace_ function with nop5. > > Then make it a notrace function with a nop5 in it. That isn't hard. > > The whole problem is that it isn't a notrace function and you're abusing > a __fentry__ site. https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?h=x86/fineibt&id=8d075bdf11193f1d276bf19fa56b4b8dfe24df9e foo.c: __attribute__((__no_instrument_function__)) __attribute__((patchable_function_entry(5))) void my_func(void) { } void my_foo(void) { } gcc -c foo.c -pg -mfentry -mcmodel=kernel -fno-PIE -O2 foo.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <my_func>: 0: f3 0f 1e fa endbr64 4: 90 nop 5: 90 nop 6: 90 nop 7: 90 nop 8: 90 nop 9: c3 ret a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 0000000000000010 <my_foo>: 10: f3 0f 1e fa endbr64 14: e8 00 00 00 00 call 19 <my_foo+0x9> 15: R_X86_64_PLT32 __fentry__-0x4 19: c3 ret