From: Jarek Poplawski <jarkao2@gmail.com> Date: Mon, 18 Aug 2008 00:22:07 +0200It _might_ be ok once we are done sorting out the synchronization sequence dev_deactivate() uses. But we aren't there yet. I can't even follow your flurry of patches, and neither can the tester :-) I deleted the entire thread to be honest, hoping you would come back with a simple analysis once you've worked things out with the tester. What is the real problem besides the correct notify_and_destroy() issue you discovered? The locking we have now is very simple: 1) Only under RTNL can qdisc roots change. 2) Therefore, sch_tree_lock() and tcf_tree_lock() are fully valid and lock the entire qdisc tree state, if and only if used under RTNL lock. 3) Before modifying a qdisc, we dev_deactivate(), which synchronizes with asynchronous TX/RX packet handling contexts. 4) The qdisc root and all children are protected by the root qdiscs lock, which is taken when asynchonous contexts need to blocked while modifying some root or inner qdisc's state. Yes, of course, if you apply a hammer and add a bit lock at the top of all of this it will fix whatever bugs remain, but as you know I don't think that's the solution. The only substance I've seen is that you've found a violation of #4 in notify_and_destroy(), so great let's test the fix for that. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 002/196] Chinese: rephrase English introduction in HOWTO |
| Christoph Lameter | [00/41] Large Blocksize Support V7 (adds memmap support) |
| Chuck Ebbert | Re: Linux 2.6.21 |
git: | |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Hugh Dickins | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| David Miller | [GIT]: Networking |
