Re: [PATCH rdma-next] RDMA/srpt: Fix RCU debug build error

Paul E. McKenney
2018-01-23T22:03:37Z

On Tue, Jan 23, 2018 at 04:04:17PM +0000, Bart Van Assche wrote:
> On Tue, 2018-01-23 at 08:21 -0700, Jason Gunthorpe wrote:
> > /*
> > * init_rcu_head_on_stack()/destroy_rcu_head_on_stack() are needed for dynamic
> > * initialization and destruction of rcu_head on the stack. rcu_head structures
> > * allocated dynamically in the heap or defined statically don't need any
> > * initialization.
> > */
> >
> > The commit that introduced init_rcu_head is
> > 546a9d8519ed137b2804a3f5a3659003039dd49c which suggests it exists only
> > to help the slab allocators, although curiously the allocators never
> > call it these days..
> >
> > Maybe Paul can confirm?
>
> It would be great if Paul could provide feedback. The comment in
> include/linux/rcupdate.h seems to contradict the following paragraph from
> Documentation/RCU/Design/Requirements/Requirements.html for statically
> allocated objects:
>
> The corresponding rcu_head structures that are
> dynamically allocated are automatically tracked, but
> rcu_head structures allocated on the stack
> must be initialized with init_rcu_head_on_stack()
> and cleaned up with destroy_rcu_head_on_stack() .
> Similarly, statically allocated non-stack rcu_head
> structures must be initialized with init_rcu_head()
> and cleaned up with destroy_rcu_head() .

And this is the intent. What breaks when you do that?

Thanx, Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html