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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2018-01-23 at 14:03 -0800, Paul E. McKenney wrote:
> On Tue, Jan 23, 2018 at 04:04:17PM +0000, Bart Van Assche wrote:
> > 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?

Hello Paul,

I inserted a init_rcu_head() call in the ib_srpt driver for a dynamically
allocated object and that triggers a linker error with
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y. I just verified that the ib_srpt driver still
works fine if the init_rcu_head() calls are removed from that driver. However,
the following part of the comment in include/linux/rcupdate.h above
init_rcu_head() seems confusing to me: "rcu_head structures allocated
dynamically in the heap or defined statically don't need any initialization."
Should that comment perhaps be updated such that it matches
Documentation/RCU/Design/Requirements/Requirements.html?

Thanks,

Bart.��.n��������+%������w��{.n�����{���fk��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux