freebsd-dev/sys
John Baldwin d8a8648379 Fix a few issues with transmit handling in em(4) and igb(4):
- Do not define the foo_start() methods or set if_start in the ifnet if
  multiq transmit is enabled.  Also, set if_transmit and if_qflush before
  ether_ifattach rather than after when multiq transmit is enabled.  This
  helps to ensure that the drivers never try to mix different transmit
  methods.
- Properly restart transmit during resume.  igb(4) was not restarting it
  at all, and em(4) was restarting even if the link was down and was
  calling the wrong method if multiq transmit was enabled.
- Remove all the 'more' handling for transmit completions.  Transmit
  completion processing does not have a processing limit, so it always
  runs to completion and never has more work to do when it returns.
  Instead, the previous code was returning 'true' anytime there were
  packets in the queue that weren't still in the process of being
  transmitted.  The effect was that the driver would continuously
  reschedule a task to process TX completions in effect running at 100%
  CPU polling the hardware until it finished transmitting all of the
  packets in the ring.  Now it will just wait for the next TX completion
  interrupt.
- Restart packet transmission when the link becomes active.
- Fix the MSI-X queue interrupt handlers to restart packet transmission if
  there are pending packets in the relevant software queue (IFQ or buf_ring)
  after processing TX completions.  This is the root cause for the OACTIVE
  hangs as if the MSI-X queue handler drained all the pending packets from
  the TX ring, nothing would ever restart it.  As such, remove some
  previously-added workarounds to reschedule a task to poll the TX ring
  anytime OACTIVE was set.

Tested by:	sbruno
Reviewed by:	jfv
MFC after:	1 week
2012-03-30 19:54:48 +00:00
..
amd64 Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
arm Add software PMC support. 2012-03-28 20:58:30 +00:00
boot Fix build after changes to trap headers. 2012-03-29 16:04:42 +00:00
bsm
cam Add LUN resizing to CTL. Also make it possible to explicitly set 2012-03-06 13:43:57 +00:00
cddl Instead of only iterating over the set of known SDT probes when sdt.ko is 2012-03-27 15:07:43 +00:00
compat Remove some unnecessary includes. 2012-03-18 19:15:11 +00:00
conf Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
contrib MFV: r233615 2012-03-28 17:21:59 +00:00
crypto Add support for the extended FPU states on amd64, both for native 2012-01-21 17:45:27 +00:00
ddb Use strchr() and strrchr(). 2012-01-02 12:12:10 +00:00
dev Fix a few issues with transmit handling in em(4) and igb(4): 2012-03-30 19:54:48 +00:00
fs Add sysctl vfs.nfs.nfs_keep_dirty_on_error to switch the nfs client 2012-03-17 23:03:20 +00:00
gdb kern cons: introduce infrastructure for console grabbing by kernel 2011-12-17 15:08:43 +00:00
geom VMDB offset should be greater than logical volume size only for MBR. 2012-03-29 07:29:27 +00:00
gnu/fs Make ReiserFS MPSAFE 2012-03-27 20:36:03 +00:00
i386 Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
ia64 Remove pty(4) from our kernel configurations. 2012-03-21 08:38:42 +00:00
isa - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
kern Remove trailing semicolon, it is a typo. 2012-03-30 12:57:14 +00:00
kgssapi
libkern Remove second consts in r233288 in order to appease C++ compilers. 2012-03-26 18:22:04 +00:00
mips Use VM_MEMATTR_UNCACHEABLE for the constant for UC memory rather than 2012-03-29 16:48:36 +00:00
modules Add software PMC support. 2012-03-28 20:58:30 +00:00
net Retire the IF_ADDR_LOCK() and IF_ADDR_UNLOCK() compat macros from HEAD. 2012-03-19 21:09:12 +00:00
net80211 Correct the ordering of tid/crypto ic_name. 2012-03-27 04:15:38 +00:00
netatalk Fix typos 2012-02-28 15:07:05 +00:00
netgraph Use rt_numfibs variable instead of compile-time RT_NUMFIBS. 2012-03-13 11:08:40 +00:00
netinet Make stream our stream reset implementation 2012-03-29 13:36:53 +00:00
netinet6 in6_pcblookup_local() still can return a pcb with NULL 2012-03-21 08:43:38 +00:00
netipsec Add multi-FIB IPv6 support to the core network stack supplementing 2012-02-03 13:08:44 +00:00
netipx Convert all users of IF_ADDR_LOCK to use new locking macros that specify 2012-01-05 19:00:36 +00:00
netnatm
netncp
netsmb
nfs Add multi-FIB IPv6 support to the core network stack supplementing 2012-02-03 13:08:44 +00:00
nfsclient Remove fifo.h. The only used function declaration from the header is 2012-03-11 12:19:58 +00:00
nfsserver Honor NFSv3 commit call (RFC 1813, Section 3.3.21) where when count is 0, 2011-12-15 02:26:53 +00:00
nlm jwd@ reported a problem via email to freebsd-fs@ on Aug 25, 2011 2012-01-31 02:11:05 +00:00
ofed Use VM_MEMATTR_UNCACHEABLE instead of VM_MEMATTR_UNCACHED for UC mappings. 2012-03-27 14:24:29 +00:00
opencrypto
pc98 Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
pci Use correct Config registers for RTL8139 family. Unlike RTL8168 and 2012-02-25 04:54:51 +00:00
powerpc - Rename VM_MEMATTR_UNCACHED to VM_MEMATTR_WEAK_UNCACHEABLE on x86 to 2012-03-29 16:51:22 +00:00
rpc
security Remove direct access to si_name. 2012-02-10 12:35:57 +00:00
sparc64 - Remove erroneous trailing semicolon. [1] 2012-03-30 15:08:09 +00:00
sys Move tty_opened_ns() into syscons.c which is currently the 2012-03-29 15:47:29 +00:00
teken
tools Make vnode_if.awk parse vnode operations with underscores, like VOP_FOO_BAR. 2012-02-21 19:35:59 +00:00
ufs A refinement of change 232351 to avoid a race with a forcible unmount. 2012-03-28 21:21:19 +00:00
vm Keep track of the mount point associated with a special device 2012-03-28 20:49:11 +00:00
x86 Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
xdr
xen blkif interface comment cleanups. No functional changes 2012-02-29 17:47:01 +00:00
Makefile Add sys/ofed to the 'make cscope' target. 2012-03-20 18:05:15 +00:00