Skip to content

Commit 16338e7

Browse files
paulmckrcuurezki
authored andcommitted
rcutorture: Pretty-print rcutorture reader segments
The current "Failure/close-call rcutorture reader segments" output is good and sufficient, but annoying when you have to interpret several tens of them after an all-night rcutorture run. This commit therefore makes them a bit more human-readable. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Cc: Frederic Weisbecker <frederic@kernel.org> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
1 parent b27a34f commit 16338e7

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

kernel/rcu/rcutorture.c

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3560,25 +3560,39 @@ rcu_torture_cleanup(void)
35603560
pr_alert("\t: No segments recorded!!!\n");
35613561
firsttime = 1;
35623562
for (i = 0; i < rt_read_nsegs; i++) {
3563-
pr_alert("\t%d: %#x ", i, err_segs[i].rt_readstate);
3563+
pr_alert("\t%d: %#4x", i, err_segs[i].rt_readstate);
35643564
if (err_segs[i].rt_delay_jiffies != 0) {
35653565
pr_cont("%s%ldjiffies", firsttime ? "" : "+",
35663566
err_segs[i].rt_delay_jiffies);
35673567
firsttime = 0;
35683568
}
3569+
if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_LOG_CPU))
3570+
pr_cont(" CPU %-2d", err_segs[i].rt_cpu);
35693571
if (err_segs[i].rt_delay_ms != 0) {
3570-
pr_cont("%s%ldms", firsttime ? "" : "+",
3572+
pr_cont(" %s%ldms", firsttime ? "" : "+",
35713573
err_segs[i].rt_delay_ms);
35723574
firsttime = 0;
35733575
}
35743576
if (err_segs[i].rt_delay_us != 0) {
3575-
pr_cont("%s%ldus", firsttime ? "" : "+",
3577+
pr_cont(" %s%ldus", firsttime ? "" : "+",
35763578
err_segs[i].rt_delay_us);
35773579
firsttime = 0;
35783580
}
3579-
pr_cont("%s", err_segs[i].rt_preempted ? "preempted" : "");
3580-
if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_LOG_CPU))
3581-
pr_cont(" CPU %d", err_segs[i].rt_cpu);
3581+
pr_cont("%s", err_segs[i].rt_preempted ? " preempted" : "");
3582+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_BH)
3583+
pr_cont(" BH");
3584+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_IRQ)
3585+
pr_cont(" IRQ");
3586+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_PREEMPT)
3587+
pr_cont(" PREEMPT");
3588+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_RBH)
3589+
pr_cont(" RBH");
3590+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_SCHED)
3591+
pr_cont(" SCHED");
3592+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_RCU_1)
3593+
pr_cont(" RCU_1");
3594+
if (err_segs[i].rt_readstate & RCUTORTURE_RDR_RCU_2)
3595+
pr_cont(" RCU_2");
35823596
pr_cont("\n");
35833597

35843598
}

0 commit comments

Comments
 (0)