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 <tt>rcu_head</tt> structures that are > dynamically allocated are automatically tracked, but > <tt>rcu_head</tt> structures allocated on the stack > must be initialized with <tt>init_rcu_head_on_stack()</tt> > and cleaned up with <tt>destroy_rcu_head_on_stack()</tt>. > Similarly, statically allocated non-stack <tt>rcu_head</tt> > structures must be initialized with <tt>init_rcu_head()</tt> > and cleaned up with <tt>destroy_rcu_head()</tt>. 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html