aboutsummaryrefslogtreecommitdiff
path: root/cddl/sbin
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2012-06-11 07:44:16 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2012-06-11 07:44:16 +0000
commit7561cb5c8b386140f01f0d6b0560fee7f5127dd6 (patch)
tree15ac00e3db1416efeb3ffcb7bb12e063586ed40d /cddl/sbin
parent4b6db4043f4f9be7eb7bfe9cd9b806214ab9d212 (diff)
downloadsrc-7561cb5c8b386140f01f0d6b0560fee7f5127dd6.tar.gz
src-7561cb5c8b386140f01f0d6b0560fee7f5127dd6.zip
Wrap the whole (software) TX path from ifnet dequeue to software queue
(or direct dispatch) behind the TXQ lock (which, remember, is doubling as the TID lock too for now.) This ensures that: (a) the sequence number and the CCMP PN allocation is done together; (b) overlapping transmit paths don't interleave frames, so we don't end up with the original issue that triggered kern/166190. Ie, that we don't end up with seqno A, B in thread 1, C, D in thread 2, and they being queued to the software queue as "A C D B" or similar, leading to the BAW stalls. This has been tested: * both STA and AP modes with INVARIANTS and WITNESS; * TCP and UDP TX; * both STA->AP and AP->STA. STA is a Routerstation Pro (single CPU MIPS) and the AP is a dual-core Centrino. PR: kern/166190
Notes
Notes: svn path=/head/; revision=236880
Diffstat (limited to 'cddl/sbin')
0 files changed, 0 insertions, 0 deletions