Re: [PATCH] rcu-scale: change rcu-scale report.

From: Paul E. McKenney
Date: Wed Jun 09 2021 - 16:37:14 EST


On Sat, Jun 05, 2021 at 03:00:19PM +0800, Jiangong.Han wrote:
> The report on rcu-scale shows there are N grace periods, and gps
> are listed from 0 to N-1.
> This commit make writer_n_durations stores the counts of gps,
> change the listed gps index begin from 1 to N.
>
> From
> [ 8306.087880] rcu-scale: writer 0 gps: 133
> ......
> [ 8307.864630] rcu-scale: 0 writer-duration: 0 44003961
> [ 8307.935711] rcu-scale: 0 writer-duration: 1 32003582
> ......
> [ 8316.472860] rcu-scale: 0 writer-duration: 131 28004391
> [ 8316.538498] rcu-scale: 0 writer-duration: 132 27996410
>
> to
> [ 8306.087880] rcu-scale: writer 0 gps: 133
> ......
> [ 8307.864630] rcu-scale: 0 writer-duration: 1 44003961
> [ 8307.935711] rcu-scale: 0 writer-duration: 2 32003582
> ......
> [ 8316.472860] rcu-scale: 0 writer-duration: 132 28004391
> [ 8316.538498] rcu-scale: 0 writer-duration: 133 27996410
>
> Signed-off-by: Jiangong.Han <jiangong.han@xxxxxxxxxxxxx>

You lost me on this one. Why is this helpful? And how does the change
shown below actually result in the output shown above, given that
rcu_scale_cleanup() still starts j at zero?

Thanx, Paul

> ---
> kernel/rcu/rcuscale.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/rcu/rcuscale.c b/kernel/rcu/rcuscale.c
> index dca51fe9c73f..2cc34a22a506 100644
> --- a/kernel/rcu/rcuscale.c
> +++ b/kernel/rcu/rcuscale.c
> @@ -487,7 +487,7 @@ rcu_scale_writer(void *arg)
> if (gp_async) {
> cur_ops->gp_barrier();
> }
> - writer_n_durations[me] = i_max;
> + writer_n_durations[me] = i_max + 1;
> torture_kthread_stopping("rcu_scale_writer");
> return 0;
> }
> @@ -561,7 +561,7 @@ rcu_scale_cleanup(void)
> wdpp = writer_durations[i];
> if (!wdpp)
> continue;
> - for (j = 0; j <= writer_n_durations[i]; j++) {
> + for (j = 0; j < writer_n_durations[i]; j++) {
> wdp = &wdpp[j];
> pr_alert("%s%s %4d writer-duration: %5d %llu\n",
> scale_type, SCALE_FLAG,
> --
> 2.17.1
>