ftrace bug

From: Arend van Spriel
Date: Mon Mar 07 2022 - 06:31:52 EST


Hi Steven,

I wanted to use FTRACE on an ARM platform and I hit the following warning which results in ftrace bug. This happens upon loading a module. Looking up the warning I suspect the branch target is too far off. The module is quite large and therefor not loaded in the modules section. Is there a way to exclude a module. In ftrace_module_init I see a check for !mod->num_ftrace_callsites. Is there a way to avoid creating ftrace callsites in a module?

Regards,
Arend

------------[ cut here ]------------
WARNING: CPU: 2 PID: 1525 at arch/arm/kernel/insn.c:47 __arm_gen_branch+0x70/0x78
CPU: 2 PID: 1525 Comm: insmod Tainted: P 4.19.183 #2
Hardware name: Generic DT based system
[<c02139e4>] (unwind_backtrace) from [<c020d4f8>] (show_stack+0x20/0x24)
[<c020d4f8>] (show_stack) from [<c0922aec>] (dump_stack+0x98/0xac)
[<c0922aec>] (dump_stack) from [<c0919b98>] (__warn.part.0+0xcc/0xe8)
[<c0919b98>] (__warn.part.0) from [<c0919d4c>] (warn_slowpath_null+0x54/0x74)
[<c0919d4c>] (warn_slowpath_null) from [<c021225c>] (__arm_gen_branch+0x70/0x78)
[<c021225c>] (__arm_gen_branch) from [<c02120e4>] (ftrace_make_nop+0x64/0xec)
[<c02120e4>] (ftrace_make_nop) from [<c02ac2b0>] (ftrace_process_locs+0x370/0x4b4)
[<c02ac2b0>] (ftrace_process_locs) from [<c02af538>] (ftrace_module_init+0x38/0x3c)
[<c02af538>] (ftrace_module_init) from [<c02a47d8>] (load_module+0x18d0/0x2570)
[<c02a47d8>] (load_module) from [<c02a56f8>] (sys_finit_module+0xe0/0xf8)
[<c02a56f8>] (sys_finit_module) from [<c0201000>] (ret_fast_syscall+0x0/0x58)
Exception stack(0xd9b1bfa8 to 0xd9b1bff0)
bfa0: 01170228 00000000 00000003 01170228 00000000 beb7ceb3
bfc0: 01170228 00000000 beb7cdc4 0000017b 00127010 00000000 00000000 00000000
bfe0: beb7cc38 beb7cc28 0001a0dc 00012890
---[ end trace f48808a851a4544a ]---
------------[ cut here ]------------
WARNING: CPU: 2 PID: 1525 at kernel/trace/ftrace.c:2034 ftrace_bug+0xfc/0x394

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature