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" 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 >