On Mon, 2018-03-19 at 09:29 -0700, tj@xxxxxxxxxx wrote: > This could be me being slow but can you explain how what > percpu_ref_tryget_live() uses internally affects whether we can use > regular RCU around it? Hello Tejun, For synchronization primitives that wait having a stronger synchronization primitive nested inside a more relaxed one can lead to a deadlock. But since the rcu read lock primitives do not wait it could be safe to use that kind of nesting with RCU. Do you perhaps know whether any documentation is available about that kind of nesting or whether it is already used elsewhere in the kernel? Thanks, Bart.