Re: [RFC PATCH linux-next] refperf: __srcu_struct_srcu_refctl_scale can be static

From: Paul E. McKenney
Date: Wed Jun 24 2020 - 14:28:42 EST


On Thu, Jun 25, 2020 at 01:47:09AM +0800, kernel test robot wrote:
>
> Signed-off-by: kernel test robot <lkp@xxxxxxxxx>

This gets me the following from gcc version 7.5.0:

kernel/rcu/refscale.c:162:1: error: duplicate âstaticâ
static DEFINE_STATIC_SRCU(srcu_refctl_scale);
^~~~~~

Is the concern the __srcu_struct_srcu_refctl_scale that is defined
as non-static? Last I checked, non-static was required in order for
the ___srcu_struct_ptrs mechanism to correctly allocate the needed
per-CPU data.

Thanx, Paul

> ---
> refscale.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/rcu/refscale.c b/kernel/rcu/refscale.c
> index d9291f883b5428..4097b53867b33d 100644
> --- a/kernel/rcu/refscale.c
> +++ b/kernel/rcu/refscale.c
> @@ -159,7 +159,7 @@ static struct ref_scale_ops rcu_ops = {
> };
>
> // Definitions for SRCU ref scale testing.
> -DEFINE_STATIC_SRCU(srcu_refctl_scale);
> +static DEFINE_STATIC_SRCU(srcu_refctl_scale);
> static struct srcu_struct *srcu_ctlp = &srcu_refctl_scale;
>
> static void srcu_ref_scale_read_section(const int nloops)