Re: linux-next: build failure after merge of the rcu tree

Boqun Feng
2016-01-08T04:55:27Z

[-- Attachment #1: Type: text/plain, Size: 1676 bytes --]

On Thu, Jan 07, 2016 at 08:48:35PM -0800, Paul E. McKenney wrote:
> On Fri, Jan 08, 2016 at 03:08:50PM +1100, Stephen Rothwell wrote:
> > Hi Paul,
> >
> > On Thu, 7 Jan 2016 19:41:57 -0800 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> > >
> > > Indeed, I suspect that SRCU might not be the only thing that would like
> > > static per-CPU variables. ;-)
> >
> > from include/linux/percpu-defs.h:
> >
> > * s390 and alpha modules require percpu variables to be defined as
> > * weak to force the compiler to generate GOT based external
> > * references for them. This is necessary because percpu sections
> > * will be located outside of the usually addressable area.
> > *
> > * This definition puts the following two extra restrictions when
> > * defining percpu variables.
> > *
> > * 1. The symbol must be globally unique, even the static ones.
> > * 2. Static percpu variables cannot be defined inside a function.
> > *
> > * Archs which need weak percpu definitions should define
> > * ARCH_NEEDS_WEAK_PER_CPU in asm/percpu.h when necessary.
> > *
> > * To ensure that the generic code observes the above two
> > * restrictions, if CONFIG_DEBUG_FORCE_WEAK_PER_CPU is set weak
> > * definition is used for all cases.
> >
> > so they can be static, but must be globally unique.

Interesting ;-) Thank you.

>
> Thank you for the tutorial! I have updated the patch to use a unique
> name for the srcu_struct added by rcuperf.c.
>

Plus a comment for DEFINE_STATIC_SRCU saying srcu can be defined as
static but must have a unique name for this reason?

Regards,
Boqun

> Thanx, Paul
>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]