Thread (26 messages) 26 messages, 4 authors, 2019-03-11

Re: [PATCH 2/5] rhashtable: don't hold lock on first table throughout insertion.

From: Paul E. McKenney <hidden>
Date: 2018-07-23 20:56:30
Also in: lkml

On Mon, Jul 23, 2018 at 09:13:43AM +1000, NeilBrown wrote:
On Sun, Jul 22 2018, Paul E. McKenney wrote:
quoted
One issue is that the ->func pointer can legitimately be NULL while on
RCU's callback lists.  This happens when someone invokes kfree_rcu()
with the rcu_head structure at the beginning of the enclosing structure.
I could add an offset to avoid this, or perhaps the kmalloc() folks
could be persuaded Rao Shoaib's patch moving kfree_rcu() handling to
the slab allocators, so that RCU only ever sees function pointers in
the ->func field.

Either way, this should be hidden behind an API to allow adjustments
to be made if needed.  Maybe something like is_after_call_rcu()?
This would (for example) allow debug-object checks to be used to catch
check-after-free bugs.

Would something of that sort work for you?
Yes, if you could provide an is_after_call_rcu() API, that would
perfectly suit my use-case.
After beating my head against the object-debug code a bit, I have to ask
if it would be OK for you if the is_after_call_rcu() API also takes the
function that was passed to RCU.

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help