freebsd-dev/sys
Adrian Chadd 1b5c5f5ad0 I give up - introduce a TX lock to serialise TX operations.
I've tried serialising TX using queues and such but unfortunately
due to how this interacts with the locking going on elsewhere in the
networking stack, the TX task gets delayed, resulting in quite a
noticable throughput loss:

* baseline TCP for 2x2 11n HT40 is ~ 170mbit/sec;
* TCP for TX task in the ath taskq, with the RX also going on - 80mbit/sec;
* TCP for TX task in a separate, second taskq - 100mbit/sec.

So for now I'm going with the Linux wireless stack approach - lock tx
early.  The linux code does in the wireless stack, before the 802.11
state stuff happens and before it's punted to the driver.
But TX locking needs to also occur at the driver layer as the TX
completion code _also_ begins to drain the ifnet TX queue.

Whilst I'm here, add some KTR traces for the TX path.

Note:

* This really should be done at the net80211 layer (as well, at least.)
  But that'll have to wait for a little more thought to happen.
2012-10-31 06:27:58 +00:00
..
amd64 The 'testing memory' patch gets printed too many times 2012-10-22 11:57:26 +00:00
arm Fix SMP build for omap4 2012-10-30 15:25:01 +00:00
boot Fix loader crash when some unhalted exception happens during include 2012-10-26 16:32:20 +00:00
bsm
cam Use M_ZERO instead of explicit memsets and bzeros. 2012-10-30 12:52:41 +00:00
cddl s/dettach/detach/g 2012-10-30 01:29:45 +00:00
compat Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
conf - Remove BCE_JUMBO_HDRSPLIT kernel option which was forgotten in r218423. 2012-10-30 13:22:39 +00:00
contrib Speed feature tests and initialize helper configuration that some CPUs require. 2012-10-30 06:07:30 +00:00
crypto
ddb
dev I give up - introduce a TX lock to serialise TX operations. 2012-10-31 06:27:58 +00:00
fs - Do not put in the mntqueue half-constructed vnodes. 2012-10-31 03:55:33 +00:00
gdb
geom Fix problem with geom_label(4) not recognizing UFS labels on filesystems 2012-10-30 21:32:10 +00:00
gnu/fs
i386 Add missed sched_pin(). 2012-10-24 18:21:22 +00:00
ia64 Fix compilation on ia64 when page size is configured for 16KB. 2012-10-28 11:53:54 +00:00
isa
kern Fixup r240246: hwpmc needs to retain the pinning until ASTs are not 2012-10-30 15:10:50 +00:00
kgssapi
libkern
mips Fix longstanding misprint. 2012-10-31 04:44:32 +00:00
modules Extend dim's hack from r228978: not only clang but gcc on non-x86 platforms 2012-10-28 02:15:35 +00:00
net o Remove last argument to ip_fragment(), and obtain all needed information 2012-10-26 21:06:33 +00:00
net80211 Add some further BAR TX debugging; it was useful when figuring out 2012-10-28 04:18:49 +00:00
netatalk
netgraph Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
netinet Whitespace changes due to upstream integration of SCTP changes in the 2012-10-29 20:47:32 +00:00
netinet6 Whitespace changes due to upstream integration of SCTP changes in the 2012-10-29 20:47:32 +00:00
netipsec Do not reduce ip_len by size of IP header in the ip_input() 2012-10-23 08:33:13 +00:00
netipx
netnatm
netncp
netpfil o Remove last argument to ip_fragment(), and obtain all needed information 2012-10-26 21:06:33 +00:00
netsmb Fix panic due to page faults while in kernel mode, under conditions of 2012-10-31 03:34:07 +00:00
nfs
nfsclient
nfsserver Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
nlm Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
ofed remove duplicate semicolons where possible. 2012-10-22 03:00:37 +00:00
opencrypto
pc98 The 'testing memory' patch gets printed too many times 2012-10-22 11:57:26 +00:00
pci
powerpc Work around broken device tree on last-generation PowerPC iMacs 2012-10-29 14:27:28 +00:00
rpc Modify the comment to take out the names and URL. 2012-10-25 19:30:58 +00:00
security Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
sparc64
sys Compiler have a precise knowledge of the content of sched_pin() and 2012-10-29 01:35:17 +00:00
teken
tools
ufs Fix problem with geom_label(4) not recognizing UFS labels on filesystems 2012-10-30 21:32:10 +00:00
vm Replace the page hold queue, PQ_HOLD, by a new page flag, PG_UNHOLDFREE, 2012-10-29 06:15:04 +00:00
x86 This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
xdr
xen Move the corresponding MTX_SYSINIT() next to their struct mtx declaration 2012-10-26 17:31:35 +00:00
Makefile