On Wed, 2007-21-03 at 15:04 +0100, Patrick McHardy wrote: > Patrick McHardy wrote: > > What we could do is replace the netlink cb_lock spinlock by a > > user-supplied mutex (supplied to netlink_kernel_create, rtnl_mutex > > in this case). That would put the entire dump under the rtnl and > > allow us to get rid of qdisc_tree_lock and avoid the need to take > > dev_base_lock during qdisc dumping. Same in other spots like > > rtnl_dump_ifinfo, inet_dump_ifaddr, ... > > > These (compile tested) patches demonstrate the idea. > > The first one > lets netlink_kernel_create users specify a mutex that should be > held during dump callbacks, the second one uses this for rtnetlink > and changes inet_dump_ifaddr for demonstration. > > A complete patch would allow us to simplify locking in lots of > spots, all rtnetlink users currently need to implement extra > locking just for the dump functions, and a number of them > already get it wrong and seem to rely on the rtnl. >
The mutex is certainly a cleaner approach; and a lot of the RCU protection would go away. I like it. Knowing you i sense theres something clever in there that i am missing. I dont see how you could get rid of the tree locking since we need to protect against the data path still, no? Or are you looking at that as a separate effort? > If there are no objections to this change I'm going to update > the second patch to include all rtnetlink users. No objections here. cheers, jamal - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html