Thread (14 messages) 14 messages, 7 authors, 2012-01-21

Re: [PATCH] memcg: restore ss->id_lock to spinlock, using RCU for next

From: Eric Dumazet <hidden>
Date: 2012-01-19 13:30:26
Also in: linux-mm, lkml

Le jeudi 19 janvier 2012 à 04:28 -0800, Tejun Heo a écrit :
Hello,

On Wed, Jan 18, 2012 at 11:33 PM, Eric Dumazet [off-list ref] wrote:
quoted
Interesting, but should be a patch on its own.
Yeap, agreed.
quoted
Maybe other idr users can benefit from your idea as well, if patch is
labeled  "idr: allow idr_get_next() from rcu_read_lock" or something...

I suggest introducing idr_get_next_rcu() helper to make the check about
rcu cleaner.

idr_get_next_rcu(...)
{
       WARN_ON_ONCE(!rcu_read_lock_held());
       return idr_get_next(...);
}
Hmmm... I don't know. Does having a separate set of interface help
much?  It's easy to avoid/miss the test by using the other one.  If we
really worry about it, maybe indicating which locking is to be used
during init is better? We can remember the lockdep map and trigger
WARN_ON_ONCE() if neither the lock or RCU read lock is held.

There is a rcu_dereference_raw(ptr) in idr_get_next()

This could be changed to rcu_dereference_check(ptr, condition) to get
lockdep support for free :)

[ condition would be the appropriate
lockdep_is_held(&the_lock_protecting_my_idr) or 'I use the rcu variant'
and I hold rcu_read_lock ]

This would need to add a 'condition' parameter to idr_gen_next(), but we
have very few users in kernel at this moment.



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help