lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210624164045.GU4397@paulmck-ThinkPad-P17-Gen-1>
Date:   Thu, 24 Jun 2021 09:40:45 -0700
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     "Jiangong.Han" <jiangong.han@...driver.com>
Cc:     dave@...olabs.net, josh@...htriplett.org, rostedt@...dmis.org,
        mathieu.desnoyers@...icios.com, jiangshanlai@...il.com,
        joel@...lfernandes.org, linux-kernel@...r.kernel.org,
        rcu@...r.kernel.org
Subject: Re: [PATCH v3] rcuscale: Console output claims too few grace periods

On Thu, Jun 24, 2021 at 10:34:24PM +0800, Jiangong.Han wrote:
> The rcuscale console output claims N grace periods, numbered from zero
> to N, which means that there were really N+1 grace periods.  The root
> cause of this bug is that rcu_scale_writer() stores the number of the
> last grace period (numbered from zero) into writer_n_durations[me]
> instead of the number of grace periods. This commit therefore assigns
> the actual number of grace periods to writer_n_durations[me], and also
> makes the corresponding adjustment to the loop outputting per-grace-period
> measurements.
> 
> Sample of old console output:
> 	rcu-scale: writer 0 gps: 133
> 	......
> 	rcu-scale:    0 writer-duration:     0 44003961
> 	rcu-scale:    0 writer-duration:     1 32003582
> 	......
> 	rcu-scale:    0 writer-duration:   132 28004391
> 	rcu-scale:    0 writer-duration:   133 27996410
> 
> Sample of new console output:
> 	rcu-scale: writer 0 gps: 134
> 	......
> 	rcu-scale:    0 writer-duration:     0 44003961
> 	rcu-scale:    0 writer-duration:     1 32003582
> 	......
> 	rcu-scale:    0 writer-duration:   132 28004391
> 	rcu-scale:    0 writer-duration:   133 27996410
> 
> Signed-off-by: Jiangong.Han <jiangong.han@...driver.com>
> Signed-off-by: Paul E. McKenney <paulmck@...nel.org>

I already have it queued in -rcu here:

4c154a910344 ("rcuscale: Console output claims too few grace periods")

Or did you find an error in my wordsmithed version of your commit log?
If so, please point out the error explicitly.  (It looks identical to me,
but I could easily be missing something.)

							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
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ