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

Bart Van Assche
2018-01-23T16:04:17Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1429 bytes --]

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() .

Bart.N‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^–)Þº{.nÇ+‰·¥Š{±­ÙšŠ{ayº\x1dÊ‡Ú™ë,j\a­¢f£¢·hš‹»öì\x17/oSc¾™Ú³9˜uÀ¦æå‰È&jw¨®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿïêäz¹Þ–Šàþf£¢·hšˆ§~ˆmš