Thread (12 messages) flat view 12 messages, 2 authors, 2013-08-26

Re: [PATCH 1/2] genl: Fix genl dumpit() locking.

From: Pravin Shelar <hidden>
Date: 2013-08-22 18:10:22

On Thu, Aug 22, 2013 at 10:51 AM, Johannes Berg
[off-list ref] wrote:
On Thu, 2013-08-22 at 10:42 -0700, Pravin Shelar wrote:
quoted
On Thu, Aug 22, 2013 at 12:36 AM, Johannes Berg
[off-list ref] wrote:
quoted
On Wed, 2013-08-21 at 20:58 -0700, Pravin B Shelar wrote:
quoted
In case of genl-family with parallel ops off, dumpif() callback
is expected to run under genl_lock, But commit def3117493eafd9df
(genl: Allow concurrent genl callbacks.) changed this behaviour
where only first dumpit() op was called under genl-lock.
For subsequent dump, only nlk->cb_lock was taken.
Following patch fixes it by defining locked dumpit() and done()
callback which takes care of genl-locking.
As I've commented over in the other thread, I really think this is the
wrong thing to do. It was never the case that dumpit() was actually
locked under genl_lock(), and adding it doesn't really help anyone.
If you look at commit def3117493eafd9df , it removes assignment of
cb_mutex to genl_mutex. Thats how genl-dump operation was called under
genl_mutex.
By the way - why? This just means that netlink will allocate another
lock to lock it all, so it's not a very useful change?
This replaces global genl-lock with per-socket lock which allows
parallel operation in parallel-genl-families and they are not blocked
due to other unrelated genl-family operations.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help