Date: Fri, 30 Nov 2012 02:25:04 -0800 From: Adrian Chadd <adrian@freebsd.org> To: freebsd-wireless@freebsd.org Subject: Please test - collapsing the TX locking down to ATH_TX_LOCK() Message-ID: <CAJ-VmomJ5Oa_wyo-WxrM65OQDxcKyxr6mUi=SE7H5xnw6rbvVg@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi all, This patch collapses all of the TXQ locking down to a single TX lock and (mostly correctly) wraps the TX outbound path in a single, giant lock. The TX completion path is still a patchwork of locking, primarily because _it_ needs to be able to free net80211 node references and that can't be done with the TX lock held (or all kinds of LORs occur.) Once this is done, I'll strip out the ATH_NODE lock (since it's now not really needed any longer) and I'll just do the whole TX and TX completion handling behind this TX lock. I can then undo some of the strange locking going on with the power save handling - then I can move onto implementing correctly behaving PS-POLL. Also, once this is done, I can start doing useful things, like shoehorning traffic from any TID to any hardware TXQ, rather than assuming a fixed mapping between TID and hardware TXQ. (Again, this will be useful for PS-POLL handling.) http://people.freebsd.org/~adrian/ath/20121129-ath-tx-lock-5.diff I'd appreciate it if people would test this out against the latest -HEAD and let me know if it breaks. Since it's just mostly a mechanical copy/paste, I'm only really worried if it causes crashes, hangs or LORs. There's one LOR that will get triggered if you send fragments, but as sending fragments is currently just plain broken, it won't show up. Thanks, Adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmomJ5Oa_wyo-WxrM65OQDxcKyxr6mUi=SE7H5xnw6rbvVg>