Date: Mon, 6 Aug 2012 01:42:06 -0600 From: PseudoCylon <moonlightakkiy@yahoo.ca> To: Adrian Chadd <adrian.chadd@gmail.com> Cc: freebsd-wireless@freebsd.org, Kim Culhan <w8hdkim@gmail.com> Subject: Re: ath lor Message-ID: <CAFZ_MY%2BmE_%2B2QHB=iVYP6CA_96pt8d=9PNYb2_Y3s6x%2BW2HUyw@mail.gmail.com> In-Reply-To: <CAJ-VmomXVKYodo9Q5Nt1mvWPsOtSHjh5R9RqKcqtrGfrYjh9AA@mail.gmail.com> References: <CAFZ_MYKgUkryy4parts3QahAyPA7FY9xUqC98_E7oFW%2BzarA8A@mail.gmail.com> <CAFZ_MYKeOKxT3k7JWHjdH83vbieZ6JpXe0kbXTJy4neEd5Aqew@mail.gmail.com> <CAJ-VmomGBvgLwFEcXbEuYkAj=g%2By8zVo8cT2nSSMdydCk=OhYQ@mail.gmail.com> <CAFZ_MYJP97aO73zLpJF9%2B8MiQVqAHGNngmtOakYDcaikvyq7og@mail.gmail.com> <CAJ-VmomSTcTFVQovOaGB9_7kTh_R9Z2W4bypknHVrtykYz2SMg@mail.gmail.com> <CAFZ_MYKnKmM2M%2BpcifxWNcp-pXsJGhb2i7aRo94JK3jqUyaNrw@mail.gmail.com> <CAJ-VmokoURqGmD=U_=p0noeGbLBwTbW63fMfo8Teb7iw3U_W-g@mail.gmail.com> <CAFZ_MYL%2BBV0dPP_hxKw%2BWEz-zz2TxwOdYRTqipPuVa6ZEmvx9A@mail.gmail.com> <CAJ-Vmok-TFHyo0JkX_AucDwRj=JX1qwfc_s7nidFSBnrO_Y-jw@mail.gmail.com> <CAFZ_MYLsa1QHHe=U=9=rjFsoXCfv7DB0LMZLxiZekpACSB9nYg@mail.gmail.com> <CAJ-VmonzuvnqE3MsuOac2QXYeamYbCysMhurBmCRsaCCTTpfnA@mail.gmail.com> <CAFZ_MYKmORxoA9utQujdZOHV=Kmfcw=JagSdBRQjBzbTR4bOGg@mail.gmail.com> <CAJ-VmomLwcAkwKhP0YXykJLjobcuSa_=nA4dtdczN8bgixFSCw@mail.gmail.com> <CAFZ_MY%2BD4XptiR6OaLiENo0iU1gG49abXPJ_JksK4_GuHU47Sw@mail.gmail.com> <CAJ-VmomXVKYodo9Q5Nt1mvWPsOtSHjh5R9RqKcqtrGfrYjh9AA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--20cf307c9e0abc69df04c69403fe Content-Type: text/plain; charset=ISO-8859-1 On Sun, Aug 5, 2012 at 11:24 AM, Adrian Chadd <adrian.chadd@gmail.com> wrote: > On 5 August 2012 06:37, PseudoCylon <moonlightakkiy@yahoo.ca> wrote: > >>> What's the path through the stack -> driver that leads to >>> run_tx_free() being called with the driver lock held? >> >> This one was easy to spot. >> USB stack calls run_bulk_tx_callbackN() with driver lock held, >> ->run_tx_free() ->ieee80211_free_node() then locks node lock. > > Ah. Hm, does the USB stack need to hold any locks held? > That seems like a recipe for disaster for drivers in general, not just wifi. Not 100% sure, but yes. And, it is unsafe to unlock before all usb related tasks have done. In this case, we should unlock somewhere here. http://fxr.watson.org/fxr/source/dev/usb/wlan/if_run.c#L2805 Caller can specify the lock when setting up usb transfers http://fxr.watson.org/fxr/source/dev/usb/wlan/if_run.c#L568 If null is passed rather than ptr to mtx, usb stack will use giant lock. http://fxr.watson.org/fxr/source/dev/usb/usb_transfer.c?im=10#L841 > >>> And on the flip side, what's the path through the driver -> stack >>> that's called with the driver lock held? The comlock shouldn't be held >>> when TX/RX'ing packets up to the stack. >> >> I have not found it yet. I've been stuck here, but I'll keep looking >> for this. Then I can patch usb/150189. > > Cool. > >>> Hm, maybe we should start a wiki page with all of the net80211/wifi >>> driver LORs. Do you have wiki.freebsd.org access? If not, create an >>> account and tell me what username you choose. If you do, create a page >>> under http://wiki.freebsd.org/WiFi and let's start documenting the >>> LORs that we see. >> >> run(4) calls ieee80211_runtask() because thread is non-sleepable or >> avoid LOR. I think I can still track back LOR. Also, I saved LOR >> outputs I saw long time ago. See if I can find them on old hard drive. > > Yes. Please, let's start a wiki page with all the wifi stack / driver > related LORs that you find. I really want to find/fix/document/squish > them as soon as possible. Will do. > > Also, would you please push a patch to the mailing list for your > current ieee80211_iterate_nodes() work, so Kim and I can try it out? > That way we can provide testing and feedback (respectively.) Attached iter.patch (with if_print) iter2.patch (with reverting change functions) both diff against CURRENT > > Thanks for your work with this! I'm glad to have someone else working > on improving things. (Ray, Bernard and Monthadar included as well. :-) Grad to help some. AK --20cf307c9e0abc69df04c69403fe Content-Type: application/octet-stream; name="iter.patch" Content-Disposition: attachment; filename="iter.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h5j912um0 ZGlmZiAtLWdpdCBhL2llZWU4MDIxMV9ub2RlLmMgYi9pZWVlODAyMTFfbm9kZS5jCmluZGV4IDg2 MWZhODUuLmE2MDljYjEgMTAwNjQ0Ci0tLSBhL2llZWU4MDIxMV9ub2RlLmMKKysrIGIvaWVlZTgw MjExX25vZGUuYwpAQCAtMjE1NiwzMiArMjE1Niw3OSBAQCBpZWVlODAyMTFfbm9kZV90aW1lb3V0 KHZvaWQgKmFyZykKIAkJaWVlZTgwMjExX25vZGVfdGltZW91dCwgaWMpOwogfQogCisvKgorICog TWF5IGRpcmVjdGx5IGJlIGNhbGxlZCBhbmQgZG8gY3VzdG9taXplZCBpdGVyYXRlIGZ1bmN0aW9u cy4KKyAqIE9ubHkgcmVxdWlyZW1lbnQgaXMgdG8gZGVjcmVtZW50IGVhY2ggbm9kZSdzIHJlZiBj b3VudC4KKyAqLwogdm9pZAotaWVlZTgwMjExX2l0ZXJhdGVfbm9kZXMoc3RydWN0IGllZWU4MDIx MV9ub2RlX3RhYmxlICpudCwKLQlpZWVlODAyMTFfaXRlcl9mdW5jICpmLCB2b2lkICphcmcpCitp ZWVlODAyMTFfaXRlcmF0ZV9udChzdHJ1Y3QgaWVlZTgwMjExX25vZGVfdGFibGUgKm50LAorICAg IHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqKm5pX2FyciwgdWludDE2X3QgbWF4X2FpZCkKIHsKIAlz dHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pOwogCXVfaW50IGdlbjsKKwlpbnQgaSA9IDA7CiAKIAlJ RUVFODAyMTFfTk9ERV9JVEVSQVRFX0xPQ0sobnQpOworCUlFRUU4MDIxMV9OT0RFX0xPQ0sobnQp OworCiAJZ2VuID0gKytudC0+bnRfc2NhbmdlbjsKKwogcmVzdGFydDoKLQlJRUVFODAyMTFfTk9E RV9MT0NLKG50KTsKIAlUQUlMUV9GT1JFQUNIKG5pLCAmbnQtPm50X25vZGUsIG5pX2xpc3QpIHsK LQkJaWYgKG5pLT5uaV9zY2FuZ2VuICE9IGdlbikgewotCQkJbmktPm5pX3NjYW5nZW4gPSBnZW47 Ci0JCQkodm9pZCkgaWVlZTgwMjExX3JlZl9ub2RlKG5pKTsKLQkJCUlFRUU4MDIxMV9OT0RFX1VO TE9DSyhudCk7Ci0JCQkoKmYpKGFyZywgbmkpOwotCQkJaWVlZTgwMjExX2ZyZWVfbm9kZShuaSk7 Ci0JCQlnb3RvIHJlc3RhcnQ7CisJCWlmIChuaS0+bmlfc2NhbmdlbiA9PSBnZW4pCisJCQljb250 aW51ZTsKKworCQlpZiAoaSA+PSBtYXhfYWlkKSB7CisJCQlpZl9wcmludGYobnQtPm50X2ljLT5p Y19pZnAsCisJCQkgICAgIk5vZGUgYXJyYXkgb3ZlcmZsb3c6IG1heD0ldSIsIG1heF9haWQpOwor CQkJYnJlYWs7CiAJCX0KKworCQluaS0+bmlfc2NhbmdlbiA9IGdlbjsKKwkJKCoobmlfYXJyICsg aSsrKSkgPSBpZWVlODAyMTFfcmVmX25vZGUobmkpOworCQlnb3RvIHJlc3RhcnQ7CiAJfQotCUlF RUU4MDIxMV9OT0RFX1VOTE9DSyhudCk7CiAKKwlJRUVFODAyMTFfTk9ERV9VTkxPQ0sobnQpOwog CUlFRUU4MDIxMV9OT0RFX0lURVJBVEVfVU5MT0NLKG50KTsKIH0KIAorLyoKKyAqIEp1c3QgYSB3 cmFwcGVyLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoYW5nZSBldmVyeSBpZWVlODAyMTFfaXRlcmF0 ZV9ub2RlcygpCisgKiByZWZlcmVuY2UgaW4gdGhlIHNvdXJjZS4KKyAqLwordm9pZAoraWVlZTgw MjExX2l0ZXJhdGVfbm9kZXMoc3RydWN0IGllZWU4MDIxMV9ub2RlX3RhYmxlICpudCwKKwlpZWVl ODAyMTFfaXRlcl9mdW5jICpmLCB2b2lkICphcmcpCit7CisJc3RydWN0IGllZWU4MDIxMV9ub2Rl ICoqbmlfYXJyOworCXN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmk7CisJdW5zaWduZWQgbG9uZyBz aXplOworCWludCBpOworCXVpbnQxNl90IG1heF9haWQ7CisKKwltYXhfYWlkID0gVEFJTFFfRklS U1QoJm50LT5udF9pYy0+aWNfdmFwcyktPml2X21heF9haWQ7CisJc2l6ZSA9IG1heF9haWQgKiBz aXplb2YoKm5pX2Fycik7CisJbmlfYXJyID0gKHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqKiltYWxs b2Moc2l6ZSwgTV84MDIxMV9OT0RFLAorCSAgICBNX05PV0FJVCB8IE1fWkVSTyk7CisJaWYgKG5p X2FyciA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpZWVlODAyMTFfaXRlcmF0ZV9udChudCwgbmlf YXJyLCBtYXhfYWlkKTsKKworCWZvciAoaSA9IDA7IGkgPCBtYXhfYWlkOyBpKyspIHsKKwkJbmkg PSAqKG5pX2FyciArIGkpOworCQlpZiAobmkgPT0gTlVMTCkJLyogZW5kIG9mIHRoZSBsaXN0ICov CisJCQlicmVhazsKKworCQkoKmYpKGFyZywgbmkpOworCQkvKiBpZWVlODAyMTFfZnJlZV9ub2Rl KCkgbG9ja3MgYnkgaXRzZWxmICovCisJCWllZWU4MDIxMV9mcmVlX25vZGUobmkpOworCX0KKwor CWZyZWUobmlfYXJyLCBNXzgwMjExX05PREUpOworfQorCiB2b2lkCiBpZWVlODAyMTFfZHVtcF9u b2RlKHN0cnVjdCBpZWVlODAyMTFfbm9kZV90YWJsZSAqbnQsIHN0cnVjdCBpZWVlODAyMTFfbm9k ZSAqbmkpCiB7CmRpZmYgLS1naXQgYS9pZWVlODAyMTFfbm9kZS5oIGIvaWVlZTgwMjExX25vZGUu aAppbmRleCA4M2IxMDhiLi4xZmJjODkyIDEwMDY0NAotLS0gYS9pZWVlODAyMTFfbm9kZS5oCisr KyBiL2llZWU4MDIxMV9ub2RlLmgKQEAgLTQzOCw2ICs0MzgsOCBAQCBpbnQJaWVlZTgwMjExX25v ZGVfZGVsdWNhc3RrZXkoc3RydWN0IGllZWU4MDIxMV9ub2RlICopOwogdm9pZAlpZWVlODAyMTFf bm9kZV90aW1lb3V0KHZvaWQgKmFyZyk7CiAKIHR5cGVkZWYgdm9pZCBpZWVlODAyMTFfaXRlcl9m dW5jKHZvaWQgKiwgc3RydWN0IGllZWU4MDIxMV9ub2RlICopOwordm9pZAlpZWVlODAyMTFfaXRl cmF0ZV9udChzdHJ1Y3QgaWVlZTgwMjExX25vZGVfdGFibGUgKiwKKwkJc3RydWN0IGllZWU4MDIx MV9ub2RlICoqLCB1aW50MTZfdCk7CiB2b2lkCWllZWU4MDIxMV9pdGVyYXRlX25vZGVzKHN0cnVj dCBpZWVlODAyMTFfbm9kZV90YWJsZSAqLAogCQlpZWVlODAyMTFfaXRlcl9mdW5jICosIHZvaWQg Kik7CiAK --20cf307c9e0abc69df04c69403fe Content-Type: application/octet-stream; name="iter2.patch" Content-Disposition: attachment; filename="iter2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h5j912v41 ZGlmZiAtLWdpdCBhL2llZWU4MDIxMV9ub2RlLmMgYi9pZWVlODAyMTFfbm9kZS5jCmluZGV4IDg2 MWZhODUuLmExNWZjOTEgMTAwNjQ0Ci0tLSBhL2llZWU4MDIxMV9ub2RlLmMKKysrIGIvaWVlZTgw MjExX25vZGUuYwpAQCAtMjE1NiwzMCArMjE1Niw5MyBAQCBpZWVlODAyMTFfbm9kZV90aW1lb3V0 KHZvaWQgKmFyZykKIAkJaWVlZTgwMjExX25vZGVfdGltZW91dCwgaWMpOwogfQogCi12b2lkCi1p ZWVlODAyMTFfaXRlcmF0ZV9ub2RlcyhzdHJ1Y3QgaWVlZTgwMjExX25vZGVfdGFibGUgKm50LAot CWllZWU4MDIxMV9pdGVyX2Z1bmMgKmYsIHZvaWQgKmFyZykKKy8qCisgKiBNYXkgZGlyZWN0bHkg YmUgY2FsbGVkIGFuZCBkbyBjdXN0b21pemVkIGl0ZXJhdGUgZnVuY3Rpb25zLgorICogT25seSBy ZXF1aXJlbWVudCBpcyB0byBkZWNyZW1lbnQgZWFjaCBub2RlJ3MgcmVmIGNvdW50LgorICovCitp bnQKK2llZWU4MDIxMV9pdGVyYXRlX250KHN0cnVjdCBpZWVlODAyMTFfbm9kZV90YWJsZSAqbnQs CisgICAgc3RydWN0IGllZWU4MDIxMV9ub2RlICoqbmlfYXJyLCB1aW50MTZfdCBtYXhfYWlkKQog ewogCXN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmk7CiAJdV9pbnQgZ2VuOworCWludCBpLCByZXQ7 CiAKIAlJRUVFODAyMTFfTk9ERV9JVEVSQVRFX0xPQ0sobnQpOworCUlFRUU4MDIxMV9OT0RFX0xP Q0sobnQpOworCiAJZ2VuID0gKytudC0+bnRfc2NhbmdlbjsKKwlpID0gcmV0ID0gMDsKKwogcmVz dGFydDoKLQlJRUVFODAyMTFfTk9ERV9MT0NLKG50KTsKIAlUQUlMUV9GT1JFQUNIKG5pLCAmbnQt Pm50X25vZGUsIG5pX2xpc3QpIHsKLQkJaWYgKG5pLT5uaV9zY2FuZ2VuICE9IGdlbikgewotCQkJ bmktPm5pX3NjYW5nZW4gPSBnZW47Ci0JCQkodm9pZCkgaWVlZTgwMjExX3JlZl9ub2RlKG5pKTsK LQkJCUlFRUU4MDIxMV9OT0RFX1VOTE9DSyhudCk7Ci0JCQkoKmYpKGFyZywgbmkpOworCQlpZiAo bmktPm5pX3NjYW5nZW4gPT0gZ2VuKQorCQkJY29udGludWU7CisKKwkJaWYgKGkgPj0gbWF4X2Fp ZCkgeworCQkJcmV0ID0gRTJCSUc7CisJCQlpZl9wcmludGYobnQtPm50X2ljLT5pY19pZnAsCisJ CQkgICAgIk5vZGUgYXJyYXkgb3ZlcmZsb3c6IG1heD0ldSIsIG1heF9haWQpOworCQkJYnJlYWs7 CisJCX0KKworCQluaS0+bmlfc2NhbmdlbiA9IGdlbjsKKwkJKCoobmlfYXJyICsgaSsrKSkgPSBp ZWVlODAyMTFfcmVmX25vZGUobmkpOworCQlnb3RvIHJlc3RhcnQ7CisJfQorCisJaWYgKHJldCkg eworCQludC0+bnRfc2Nhbmdlbi0tOworCQlmb3IgKGkgPSAwOyBpIDwgbWF4X2FpZDsgaSsrKSB7 CisJCQluaSA9ICoobmlfYXJyICsgaSk7CisJCQluaS0+bmlfc2Nhbmdlbi0tOworCQkJLyogbm9k ZSBsb2NrIGlzIHJlY3Vyc2l2ZSAqLwogCQkJaWVlZTgwMjExX2ZyZWVfbm9kZShuaSk7Ci0JCQln b3RvIHJlc3RhcnQ7CiAJCX0KKwkJZnJlZShuaV9hcnIsIE1fODAyMTFfTk9ERSk7CiAJfQotCUlF RUU4MDIxMV9OT0RFX1VOTE9DSyhudCk7CiAKKwlJRUVFODAyMTFfTk9ERV9VTkxPQ0sobnQpOwog CUlFRUU4MDIxMV9OT0RFX0lURVJBVEVfVU5MT0NLKG50KTsKKworCXJldHVybiAocmV0KTsKK30K KworLyoKKyAqIEp1c3QgYSB3cmFwcGVyLCBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoYW5nZSBldmVy eSBpZWVlODAyMTFfaXRlcmF0ZV9ub2RlcygpCisgKiByZWZlcmVuY2UgaW4gdGhlIHNvdXJjZS4K KyAqLwordm9pZAoraWVlZTgwMjExX2l0ZXJhdGVfbm9kZXMoc3RydWN0IGllZWU4MDIxMV9ub2Rl X3RhYmxlICpudCwKKwlpZWVlODAyMTFfaXRlcl9mdW5jICpmLCB2b2lkICphcmcpCit7CisJc3Ry dWN0IGllZWU4MDIxMV9ub2RlICoqbmlfYXJyOworCXN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmk7 CisJdW5zaWduZWQgbG9uZyBzaXplOworCWludCBpOworCXVpbnQxNl90IG1heF9haWQ7CisKKwlt YXhfYWlkID0gVEFJTFFfRklSU1QoJm50LT5udF9pYy0+aWNfdmFwcyktPml2X21heF9haWQ7CisJ c2l6ZSA9IG1heF9haWQgKiBzaXplb2YoKm5pX2Fycik7CisJbmlfYXJyID0gKHN0cnVjdCBpZWVl ODAyMTFfbm9kZSAqKiltYWxsb2Moc2l6ZSwgTV84MDIxMV9OT0RFLAorCSAgICBNX05PV0FJVCB8 IE1fWkVSTyk7CisJaWYgKG5pX2FyciA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpZiAoIWllZWU4 MDIxMV9pdGVyYXRlX250KG50LCBuaV9hcnIsIG1heF9haWQpKQorCQlyZXR1cm47CisKKwlmb3Ig KGkgPSAwOyBpIDwgbWF4X2FpZDsgaSsrKSB7CisJCW5pID0gKihuaV9hcnIgKyBpKTsKKwkJaWYg KG5pID09IE5VTEwpCS8qIGVuZCBvZiB0aGUgbGlzdCAqLworCQkJYnJlYWs7CisKKwkJKCpmKShh cmcsIG5pKTsKKwkJLyogaWVlZTgwMjExX2ZyZWVfbm9kZSgpIGxvY2tzIGJ5IGl0c2VsZiAqLwor CQlpZWVlODAyMTFfZnJlZV9ub2RlKG5pKTsKKwl9CisKKwlmcmVlKG5pX2FyciwgTV84MDIxMV9O T0RFKTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0IGEvaWVlZTgwMjExX25vZGUuaCBiL2llZWU4MDIx MV9ub2RlLmgKaW5kZXggODNiMTA4Yi4uNDhlYWUyZCAxMDA2NDQKLS0tIGEvaWVlZTgwMjExX25v ZGUuaAorKysgYi9pZWVlODAyMTFfbm9kZS5oCkBAIC00MzgsNiArNDM4LDggQEAgaW50CWllZWU4 MDIxMV9ub2RlX2RlbHVjYXN0a2V5KHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqKTsKIHZvaWQJaWVl ZTgwMjExX25vZGVfdGltZW91dCh2b2lkICphcmcpOwogCiB0eXBlZGVmIHZvaWQgaWVlZTgwMjEx X2l0ZXJfZnVuYyh2b2lkICosIHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqKTsKK2ludAlpZWVlODAy MTFfaXRlcmF0ZV9udChzdHJ1Y3QgaWVlZTgwMjExX25vZGVfdGFibGUgKiwKKwkJc3RydWN0IGll ZWU4MDIxMV9ub2RlICoqLCB1aW50MTZfdCk7CiB2b2lkCWllZWU4MDIxMV9pdGVyYXRlX25vZGVz KHN0cnVjdCBpZWVlODAyMTFfbm9kZV90YWJsZSAqLAogCQlpZWVlODAyMTFfaXRlcl9mdW5jICos IHZvaWQgKik7CiAK --20cf307c9e0abc69df04c69403fe--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFZ_MY%2BmE_%2B2QHB=iVYP6CA_96pt8d=9PNYb2_Y3s6x%2BW2HUyw>