Skip to content

Commit 4099b98

Browse files
Frankenweenrostedt
authored andcommitted
ftrace: Fix softlockup in ftrace_module_enable
A soft lockup was observed when loading amdgpu module. If a module has a lot of tracable functions, multiple calls to kallsyms_lookup can spend too much time in RCU critical section and with disabled preemption, causing kernel panic. This is the same issue that was fixed in commit d0b24b4 ("ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY kernels") and commit 42ea22e ("ftrace: Add cond_resched() to ftrace_graph_set_hash()"). Fix it the same way by adding cond_resched() in ftrace_module_enable. Link: https://lore.kernel.org/aMQD9_lxYmphT-up@vova-pc Signed-off-by: Vladimir Riabchun <ferr.lambarginio@gmail.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent 70bd70c commit 4099b98

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

kernel/trace/ftrace.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7535,6 +7535,8 @@ void ftrace_module_enable(struct module *mod)
75357535
if (!within_module(rec->ip, mod))
75367536
break;
75377537

7538+
cond_resched();
7539+
75387540
/* Weak functions should still be ignored */
75397541
if (!test_for_valid_rec(rec)) {
75407542
/* Clear all other flags. Should not be enabled anyway */

0 commit comments

Comments
 (0)