Re: [PATCH tip/core/rcu 19/45] rcutorture: Print negatives for SRCU counter wraparound

From: Paul E. McKenney
Date: Wed May 07 2014 - 20:09:12 EST


On Wed, May 07, 2014 at 02:34:26PM -0700, josh@xxxxxxxxxxxxxxxx wrote:
> On Mon, Apr 28, 2014 at 05:25:07PM -0700, Paul E. McKenney wrote:
> > From: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
> >
> > 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@xxxxxxxxxxxxxxxxxx>
>
> Nit below; with that:
> Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
>
> > kernel/rcu/rcutorture.c | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
> > index 3845ea99ccd4..0141fcff6bb9 100644
> > --- a/kernel/rcu/rcutorture.c
> > +++ b/kernel/rcu/rcutorture.c
> > @@ -486,15 +486,16 @@ static void srcu_torture_barrier(void)
> >
> > static void srcu_torture_stats(char *page)
> > {
> > + long c0, c1;
> > int cpu;
> > int idx = srcu_ctl.completed & 0x1;
> >
> > 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]);
> > + 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);
>
> Nit: I'd suggest declaring the variables inside the loop, or not using
> intermediate variables at all.

Fair enough! Can't see that I am gaining much by them.

Thanx, Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/