Re: [PATCH] locking/percpu-rwsem: Add DEFINE_PERCPU_RWSEM(), use it to initialize cgroup_threadgroup_rwsem

From: Ingo Molnar
Date: Wed Apr 24 2019 - 07:03:03 EST



* Oleg Nesterov <oleg@xxxxxxxxxx> wrote:

> On 04/24, Ingo Molnar wrote:
> >
> > > -#define DEFINE_STATIC_PERCPU_RWSEM(name) \
> > > +#define __DEFINE_PERCPU_RWSEM(name, is_static) \
> > > static DEFINE_PER_CPU(unsigned int, __percpu_rwsem_rc_##name); \
> > > -static struct percpu_rw_semaphore name = { \
> > > +is_static struct percpu_rw_semaphore name = { \
> > > .rss = __RCU_SYNC_INITIALIZER(name.rss), \
> > > .read_count = &__percpu_rwsem_rc_##name, \
> > > .rw_sem = __RWSEM_INITIALIZER(name.rw_sem), \
> > > .writer = __RCUWAIT_INITIALIZER(name.writer), \
> > > }
> > > +#define DEFINE_PERCPU_RWSEM(name) \
> > > + __DEFINE_PERCPU_RWSEM(name, /* not static */)
> > > +#define DEFINE_STATIC_PERCPU_RWSEM(name) \
> > > + __DEFINE_PERCPU_RWSEM(name, static)
> >
> > Which tree is this against? It doesn't apply to tip:master nor latest
>
> OOPS, sorry Ingo!
>
> I forgot that the change above depends on another cleanup I sent to Paul,
>
> [PATCH] rcu/sync: kill rcu_sync_type/gp_type
> https://lore.kernel.org/lkml/20190423120724.GA6132@xxxxxxxxxx/
>
> which does
>
> - .rss = __RCU_SYNC_INITIALIZER(name.rss, RCU_SCHED_SYNC), \
> + .rss = __RCU_SYNC_INITIALIZER(name.rss), \
>
> so lets forget it for now, or may be Paul can take this patch too.

No problem, and both rwsem patches you sent seem fine to me:

Reviewed-by: Ingo Molnar <mingo@xxxxxxxxxx>

Thanks,

Ingo