rcu-tasks: Dump rcu tasks status when the boot-test failed

This commit adds a dump RCU task status function to rcu tasks tests,
used to obtain more information to help debug when the RCU tasks
boot-time tests failed.

Signed-off-by: Zqiang <qiang.zhang@linux.dev>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
Zqiang 2026-07-06 18:03:10 +08:00 committed by Paul E. McKenney
parent 5b79f1d5d7
commit ef21090071

View File

@ -1453,6 +1453,7 @@ struct rcu_tasks_test_desc {
const char *name;
bool notrun;
unsigned long runstart;
void (*gp_dbg)(void);
};
static struct rcu_tasks_test_desc tests[] = {
@ -1460,6 +1461,8 @@ static struct rcu_tasks_test_desc tests[] = {
.name = "call_rcu_tasks()",
/* If not defined, the test is skipped. */
.notrun = IS_ENABLED(CONFIG_TASKS_RCU),
/* Dump rcu tasks status, if test failed. */
.gp_dbg = show_rcu_tasks_classic_gp_kthread
},
{
.name = "call_rcu_tasks_trace()",
@ -1519,6 +1522,8 @@ static int rcu_tasks_verify_self_tests(void)
while (tests[i].notrun) { // still hanging.
if (time_after(jiffies, tests[i].runstart + bst)) {
pr_err("%s has failed boot-time tests.\n", tests[i].name);
if (tests[i].gp_dbg)
tests[i].gp_dbg();
ret = -1;
break;
}