freebsd-src/sys
Pyun YongHyeon d94f2b8506 Add workaround to overcome hardware limitation which allows only a
single outstanding DMA read operation. Most controllers targeted to
client with PCIe bus interface(e.g. BCM5761) may have this
limitation. All controllers for servers does not have this
limitation.
Collapsing mbuf chains to reduce number of memory reads before
transmitting was most effective way to workaround this. I got about
940Mbps from 850Mbps with mbuf collapsing on BCM5761. However it
takes a lot of CPU cycles to collapse mbuf chains so add tunable to
control the number of allowed TX buffers before collapsing. The
default value is 0 which effectively disables the forced collapsing.
For most cases 2 would yield best performance(about 930Mbps)
without much sacrificing CPU cycles.
Note the collapsing is only activated when the controller is on
PCIe bus and the frame does not need TSO operation. TSO does not
seem to suffer from the hardware limitation because the payload
size is much bigger than normal IP datagram.
Thanks to davidch@ who told me the limitation of client controllers
and actually gave possible workarounds to mitigate the limitation.

Reviewed by:	davidch, marius
2009-12-03 23:57:06 +00:00
..
amd64 mca: small enhancements related to cpu quirks 2009-12-03 16:10:21 +00:00
arm Add missing ath_ar9* ath hal entries. 2009-12-02 00:38:11 +00:00
boot Remove spinconsole from pc98, some parts seem to be missed and it's 2009-11-27 13:19:06 +00:00
bsm Add audit events for process descriptor system calls, which will appear in 2009-09-29 21:25:59 +00:00
cam Fix several cases where the periph lock was held over malloc. 2009-12-02 16:08:33 +00:00
cddl Correct another case of not doing 64bit math. This allows mine and 2009-11-13 02:50:50 +00:00
compat Include <sys/tty.h> instead of <sys/termios.h>. 2009-11-28 16:30:06 +00:00
conf Remove extra parantheses from usb_ethernet.c and usb_serial.c lines. 2009-11-30 21:03:44 +00:00
contrib Merge ACPICA 20091112. 2009-11-16 21:47:12 +00:00
crypto
ddb Among signal generation syscalls, only sigqueue(2) is allowed by POSIX 2009-11-17 11:39:15 +00:00
dev Add workaround to overcome hardware limitation which allows only a 2009-12-03 23:57:06 +00:00
fs Remove unneeded ifdefs. 2009-12-03 18:03:42 +00:00
gdb
geom Change 'load' balancing mode algorithm: 2009-12-03 21:47:51 +00:00
gnu Remove unused code. 2009-12-03 18:16:14 +00:00
i386 mca: small enhancements related to cpu quirks 2009-12-03 16:10:21 +00:00
ia64 Make sure bus space accesses use unorder memory loads and stores. 2009-12-03 04:06:48 +00:00
isa - Partially revert hackish r198964 and r199002. 2009-11-12 17:56:56 +00:00
kern Remove wrong assertion. Debugee is allowed to lose a signal. 2009-12-03 20:16:59 +00:00
kgssapi When the KOBJMETHOD() macro was updated, it resulted in the 2009-06-14 17:33:46 +00:00
libkern Move inet_aton() (specular to inet_ntoa(), already present in libkern) 2009-11-12 00:46:28 +00:00
mips Simplify the invocation of vm_fault(). Specifically, eliminate the flag 2009-11-27 20:24:11 +00:00
modules amdsbwd: new driver for AMD SB600/SB7xx watchdog timer 2009-11-30 11:44:03 +00:00
net Remove if_timer/if_watchdog now that they are no longer used. The space 2009-11-30 21:25:57 +00:00
net80211 Remove trailing ";" in struct ieee80211_beacon_offsets declaration 2009-11-11 15:00:56 +00:00
netatalk Reverse misordered unlock and lock in at_control for netatalk phase I 2009-08-12 10:44:13 +00:00
netgraph Take a step towards removing if_watchdog/if_timer. Don't explicitly set 2009-11-06 14:55:01 +00:00
netinet preparation work to replace the monster switch in ipfw_chk() with 2009-12-03 14:22:15 +00:00
netinet6 Adapt r197136 to IPv6 stack: 2009-11-19 13:39:07 +00:00
netipsec Enable IPcomp by default. 2009-11-29 20:47:43 +00:00
netipx Use queue(9) instead of hand-crafted link lists for the global IPX 2009-06-24 20:57:50 +00:00
netnatm
netncp
netsmb Don't print out a message on loading a module. 'kldload -v' and 'kldstat 2009-09-10 18:33:08 +00:00
nfs Revert rev 192323 (nfs_common.c only): 2009-07-12 03:53:52 +00:00
nfsclient Close a race with caching of -ve name lookups in the NFS client. 2009-10-16 19:30:48 +00:00
nfsserver Properly return an error reply if an NFS remove or link operation fails. 2009-12-03 20:59:28 +00:00
nlm Handle GRANTED_RES messages more gracefully: Send along a grant cookie 2009-10-07 19:50:14 +00:00
opencrypto In case the compression result is the same size as the orignal version, 2009-11-29 17:53:57 +00:00
pc98 Fix cut'n paste on the AR9280 entry. 2009-12-02 21:22:10 +00:00
pci intpm/sb700: force polling mode if configured interrupt is SMI 2009-09-19 08:56:28 +00:00
powerpc The first argument of dcbz interprets r0 as a literal zero, not the second. 2009-12-03 20:55:09 +00:00
rpc Add a check for the connection being shut down to the krpc 2009-11-08 19:02:13 +00:00
security Having thrown the cat out of the house, add a necessary include. 2009-09-08 13:24:36 +00:00
sparc64 Simplify the invocation of vm_fault(). Specifically, eliminate the flag 2009-11-27 20:24:11 +00:00
sun4v Simplify the invocation of vm_fault(). Specifically, eliminate the flag 2009-11-27 20:24:11 +00:00
sys Bump __FreeBSD_version for sigpause(3) addition [1] and 2009-12-02 16:40:23 +00:00
teken Place home and end before insert and delete. 2009-11-11 09:43:26 +00:00
tools Output a comment on top of each generated file explaining where it came 2009-10-25 09:48:21 +00:00
ufs Don't build ufs_gjournal.c at all if UFS_GJOURNAL option is not given 2009-09-22 16:22:05 +00:00
vm Properly synchronize the previous change. 2009-11-28 00:50:09 +00:00
xdr Add a check for a NULL mbuf ptr at the beginning of xdrmbuf_inline() 2009-08-12 16:27:51 +00:00
xen Temporarily revert the new-bus locking for 8.0 release. It will be 2009-08-20 19:17:53 +00:00
Makefile