OSDN Git Service

rcutorture: Print negatives for SRCU counter wraparound
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 4 Mar 2014 00:51:08 +0000 (16:51 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 14 May 2014 16:45:58 +0000 (09:45 -0700)
The srcu_torture_stats() function prints SRCU's per-CPU c[] array with
an unsigned format, which means that the number one less than zero is
a very large number.  This commit therefore prints this array with a
signed format in order to improve readability of the rcutorture output.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
kernel/rcu/rcutorture.c

index 0bc5f0a..80d2d24 100644 (file)
@@ -492,9 +492,11 @@ static void srcu_torture_stats(char *page)
        page += sprintf(page, "%s%s per-CPU(idx=%d):",
                       torture_type, TORTURE_FLAG, idx);
        for_each_possible_cpu(cpu) {
-               page += sprintf(page, " %d(%lu,%lu)", cpu,
-                              per_cpu_ptr(srcu_ctl.per_cpu_ref, cpu)->c[!idx],
-                              per_cpu_ptr(srcu_ctl.per_cpu_ref, cpu)->c[idx]);
+               long c0, c1;
+
+               c0 = (long)per_cpu_ptr(srcu_ctl.per_cpu_ref, cpu)->c[!idx];
+               c1 = (long)per_cpu_ptr(srcu_ctl.per_cpu_ref, cpu)->c[idx];
+               page += sprintf(page, " %d(%ld,%ld)", cpu, c0, c1);
        }
        sprintf(page, "\n");
 }