tracing: Have tracer selftests call cond_resched() before running

As there are more and more internal selftests being added to the Linux
kernel (KSAN, lockdep, etc) the selftests are taking longer to run when
these are enabled. Add a cond_resched() to the calling of
do_run_tracer_selftest() to force a schedule if NEED_RESCHED is set,
otherwise the soft lockup watchdog may trigger on boot up.

Link: https://lkml.kernel.org/r/20230528051742.1325503-3-rostedt@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
parent e8352cf5
...@@ -2045,6 +2045,13 @@ static int do_run_tracer_selftest(struct tracer *type) ...@@ -2045,6 +2045,13 @@ static int do_run_tracer_selftest(struct tracer *type)
{ {
int ret; int ret;
/*
* Tests can take a long time, especially if they are run one after the
* other, as does happen during bootup when all the tracers are
* registered. This could cause the soft lockup watchdog to trigger.
*/
cond_resched();
tracing_selftest_running = true; tracing_selftest_running = true;
ret = run_tracer_selftest(type); ret = run_tracer_selftest(type);
tracing_selftest_running = false; tracing_selftest_running = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment