freebsd-nq/sys/dev
Sean Bruno b7a728aaba Simplify hang detection by stealing the techniques used in ixl(4) and
applying them to em(4).

Rely on iterations through the local timer, and the tx queue state to
determine if an actual hang has occurred. Any time a descriptor is used
(packet sent), the tx queue is flagged as busy. Then when txeof runs, it
either clears the flag when all is clean, or resets it to 1 if ANY are
cleaned, if nothing is cleaned it increments the flag.

Local timer simply checks to see if busy ever reaches MAX (10, which
is compile time configurable), and then sets it as HUNG, at that point
there is one more timer cycle in which to have any cleans, if not a
watchdog reset will occur.

Differential Revision:	https://reviews.freebsd.org/D2019
Submitted by:	jfv
Reviewed by:	hiren
Obtained from:	Intel Corporation
MFC after:	2 weeks
Relnotes:	Yes
Sponsored by:	Limelight Networks
2015-06-02 18:28:41 +00:00
..
aac Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
aacraid Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
acpi_support acpi_ibm: add per-model default events mask. 2015-05-29 05:28:24 +00:00
acpica CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
adb
adlink
advansys Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
ae
age
agp Remove break after return. 2015-01-23 15:14:30 +00:00
aha Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
ahb Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
ahci Reduce priority of ATA/SATA drivers. 2015-03-23 19:47:52 +00:00
aic Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
aic7xxx
alc Correct device description message. 2015-01-30 01:13:07 +00:00
ale
alpm
altera CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
amdpm
amdsbwd
amdsmb
amdtemp
amr Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
an In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
arcmsr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
asmc
ata Remove from legacy ata(4) driver support for hardware, supported by newer 2015-03-24 18:09:07 +00:00
ath Use device_printf() instead of if_printf(). No functional changes. 2015-05-29 14:35:16 +00:00
atkbdc synaptics: more support for semi-MT trackpads. 2015-05-10 20:36:57 +00:00
auxio
bce Correct a typo. 2015-02-24 01:00:46 +00:00
beri o Switch to use non-mergeable RX buffers to avoid mbuf adjustment needs 2015-01-05 16:43:22 +00:00
bfe
bge bge(4): Small memory leak 2015-03-08 19:55:46 +00:00
bktr
bm
buslogic Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
bvm
bwi Follow-up r283636 with a fix to the other abuses of BUS_SPACE_MAXSIZE_32BIT. 2015-05-28 08:00:11 +00:00
bwn Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
bxe Add stat counters for Jumbo Frames using SGE ring. 2015-05-22 01:44:07 +00:00
cadence Use the new ifnet API. Also, allocate bus_dma_maps as needed instead of 2015-03-09 22:39:58 +00:00
cardbus On my Lenovo T400, a Atheros 2413 has a problem powering up 2015-02-18 05:53:04 +00:00
cas
ce CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
cesa
cfe
cfi
ciss Remove redundant mtx_lock/unlock in ciss_name_device. This is a guaranteed 2015-04-02 23:12:18 +00:00
cm In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
cmx
coretemp
cp CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
cpuctl Increase allowed size of the microcode blob to 32KB. Some Intel CPU's 2014-12-20 16:40:49 +00:00
cpufreq
cs In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
ct Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
ctau CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
cx CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
cxgb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
cxgbe cxgbe: no need to display the per-lane GT/s rating of the pcie link. 2015-06-01 03:24:39 +00:00
cy
dc Remove break after return. 2015-01-23 15:14:30 +00:00
dcons CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
de
digi
dpms
dpt Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
drm Adjust printf format specifiers for dev_t and ino_t in kernel. 2014-12-17 07:27:19 +00:00
drm2 CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
dwc o Remove superfluous includes 2015-04-03 11:37:23 +00:00
e1000 Simplify hang detection by stealing the techniques used in ixl(4) and 2015-06-02 18:28:41 +00:00
ed Unlock the main lock before returning rather than after to eliminate 2015-03-01 21:41:33 +00:00
eisa
en To ease changes to underlying mbuf structure and the mbuf allocator, reduce 2015-01-05 09:58:32 +00:00
ep
esp
et
etherswitch Fix French typos in etherswitch. 2015-04-18 07:34:39 +00:00
ex In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
exca
fatm To ease changes to underlying mbuf structure and the mbuf allocator, reduce 2015-01-05 09:58:32 +00:00
fb Add support for USB display link adapters to the FB and VT drivers. 2015-03-07 20:45:15 +00:00
fdc
fdt Rename fdt_find_child to ofw_bus_find_child. There is nothing FDT-specific 2015-05-24 23:53:10 +00:00
fe Silence a coverity warning about ignoring a return value. We do, but 2015-02-03 18:59:52 +00:00
ffec Add busdma sync ops before reading and after modifying the descriptor rings. 2014-11-24 16:12:11 +00:00
filemon
firewire Fix remote DMA based firewire debugging when targeting 2015-01-21 20:08:24 +00:00
flash Check the return value of config_intrhook_establish(). 2015-03-03 02:08:17 +00:00
fxp Add Intel vendor ID to the device table to make it more uniform so 2014-12-24 03:49:33 +00:00
gem
glxiic Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
glxsb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
gpio This implements default-state support as described in: 2015-05-24 07:45:42 +00:00
gxemul CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
hatm
hifn CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
hme
hpt27xx Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
hptiop
hptmv
hptnr Merge changes from vendor driver version 1.1.1: 2015-04-11 00:45:03 +00:00
hptrr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
hwpmc Fix two bugs that could result in PMC sampling effectively stopping. 2015-05-19 19:15:19 +00:00
hyperv CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
ic This should have been GC'd 6 years ago when ar(4) was removed. 2015-02-17 05:07:38 +00:00
ichiic ig4 - Intel fourth gen integrated I2C SMBus driver. 2015-05-30 12:17:18 +00:00
ichsmb Add Lynx-Point LP smbus controller ID. 2015-04-24 07:24:31 +00:00
ichwd Add bunch of PCI IDs of Intel Wildcat Point (9 Series) chipsets. 2014-11-26 04:23:21 +00:00
ida Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
ie In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
if_ndis Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
iicbus Remove unnecessary code and make use of generic implementations for 2015-05-10 02:19:27 +00:00
iir Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
intpm
io
ipmi Watchdog drivers need to support rearming the watchdog in contexts which 2015-04-24 16:56:23 +00:00
ips - Use the existing driver lock in cdevsw methods and remove D_NEEDGIANT. 2014-11-13 22:06:57 +00:00
ipw Set ic_softc in all 802.11 drivers. Not required right now, but will be 2015-05-25 18:50:26 +00:00
isci CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
iscsi Close some potential races around socket start/close. 2015-05-15 13:36:50 +00:00
iscsi_initiator Use sysctl_handle_string() and the sbuf printf routines instead of large 2015-03-14 22:32:15 +00:00
ismt
isp Fix SCSI status byte reporting on 4Gb and 8Gb Qlogic boards. 2015-01-21 20:32:36 +00:00
ispfw
iwi Set ic_softc in all 802.11 drivers. Not required right now, but will be 2015-05-25 18:50:26 +00:00
iwn Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
ixgb
ixgbe Catch up to the SRIOV API changes in r283670. 2015-06-01 20:05:06 +00:00
ixl Create a separate kobj interface for leaf-driver PCI IOV methods. 2015-05-28 22:01:50 +00:00
jme
joy There never was a PC Card joystick attachment that worked. Kill the 2014-11-22 20:31:20 +00:00
kbd
kbdmux Revert r281889: 2015-04-29 20:08:03 +00:00
ksyms
le In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
led This implements default-state support as described in: 2015-05-24 07:45:42 +00:00
lge
lmc Remove compat code for pre-FreeBSD 7 systems. 2015-02-17 05:10:41 +00:00
malo Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
mbox
mc146818
mca
mcd Add locking to mcd(4) and mark MPSAFE. 2014-11-18 21:51:01 +00:00
md
mem Remove Giant from /dev/mem and /dev/kmem. It is definitely not needed 2015-01-24 12:51:15 +00:00
mfi CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
mge
mii Add another variant of BCM5708S controller to IBM HS21 workaround 2015-04-23 01:39:28 +00:00
mk48txx
mlx Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
mly Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
mmc Do not set d_fwsectors nor d_fwheads. Primarily because the values 2015-05-29 20:50:41 +00:00
mn In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
mpr The wrong commit message was given with r283632. This is the correct message. 2015-05-28 18:24:22 +00:00
mps This setting of stop_at_shutdown should have been removed with r279253 2015-03-06 16:17:08 +00:00
mpt Squelch a (bogus) used before init warning when building with gcc. 2014-11-23 21:37:33 +00:00
mrsas Corrected indentation on conflicted source files. 2015-05-06 10:46:28 +00:00
mse
msk
mvs Reduce priority of ATA/SATA drivers. 2015-03-23 19:47:52 +00:00
mwl Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
mxge Move zlib.c from net to libkern. 2015-04-22 14:38:58 +00:00
my In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
nand CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
ncr
ncv Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
netfpga10g/nf10bmac
netmap When a netmap process terminates without the full set of buffers it 2015-05-15 15:36:57 +00:00
nfe
nfsmb
nge Receive filter configuration is done in nge_rxfilter(). Remove 2015-01-12 07:43:19 +00:00
nmdm
nsp Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
ntb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
null
nvd
nvme nvme: use BUS_SPACE_MAXSIZE for bus_dma_tag_create maxsize parameter 2015-04-09 00:37:55 +00:00
nvram
nvram2env
nxge CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
oce CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
ofw Rename fdt_find_child to ofw_bus_find_child. There is nothing FDT-specific 2015-05-24 23:53:10 +00:00
patm CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
pbio
pccard Remove unused PCMCIA_CARD* macros. 2014-12-03 00:47:05 +00:00
pccbb Add some data found in TI's application note "SCPA035: PCI1510 2015-05-05 04:23:55 +00:00
pcf
pci Remove several write-only variables, all reported by the gcc 4.9 2015-05-29 13:24:17 +00:00
pcn In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
pdq In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
powermac_nvram
ppbus
ppc
proto
psci Rework the PSCI cpu on code to allow it to work before device drivers have 2015-05-24 11:08:06 +00:00
pst Cleanups to pst(4): 2014-11-18 21:58:57 +00:00
pty
puc puc(4): Add an entry for the Feasso PCI FPP-02 2S1P card. 2015-01-02 22:45:55 +00:00
qlxgb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
qlxgbe CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
qlxge CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
quicc
ral Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
random - fortuna.c: catch up with r278927 and fix a buffer overflow by using the 2015-02-18 08:21:51 +00:00
rc
re Don't enable RX and TX before their initial configuration is done, i. e. 2015-04-09 21:35:44 +00:00
rl
rndtest CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
rp
rt
safe CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
sbni In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
scc
scd Add locking to scd(4) and mark MPSAFE. 2014-11-18 22:02:37 +00:00
sdhci Raise the SDHCI timeout to 10 seconds and add a sysctl to allow changing 2015-05-21 20:09:36 +00:00
sec
sf
sfxge sfxge: do not use DEBUG_FLAGS to enable extra debug checks 2015-05-29 05:44:56 +00:00
sge
si
siba
siis Reduce priority of ATA/SATA drivers. 2015-03-23 19:47:52 +00:00
sio
sis Enable receive filter in sis_rxfilter(). 2015-01-12 07:37:06 +00:00
sk
smbus Expand SMBUS API to add smbus_trans() function. 2015-04-25 16:15:01 +00:00
smc o Correct the calculation how many pages we need 2015-02-13 11:13:08 +00:00
sn In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
snc In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
snp
sound CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
speaker
spibus Add copyright statement I should have had on these files in 2006, 2015-02-18 14:33:33 +00:00
ste
stg Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
stge
streams fd: remove filedesc argument from fdclose 2015-04-11 15:40:28 +00:00
sym Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
syscons hook userland threads suspend + resume into acpi suspend code 2015-01-27 17:33:18 +00:00
tdfx
terasic Merge from CheriBSD: 2014-11-21 21:34:19 +00:00
ti In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
tl In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
tpm
trm Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
tsec
twa CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
twe Remove MAXBSIZE use from drivers where it has nothing to do. 2015-03-22 16:10:28 +00:00
tws CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
tx
txp
uart Actually check the DTS node value to enable the uart quirks. 2015-05-30 16:30:51 +00:00
ubsec CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
usb Fix for control endpoint handling in the DWC OTG driver. The data 2015-06-02 17:40:52 +00:00
utopia
vge
viapm
viawd
videomode Import videomode code from NetBSD which is needed by USB display link drivers. 2015-02-15 11:37:40 +00:00
virtio CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
vkbd
vmware/vmxnet3 Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
vr
vt Ensure the result from signed subtraction under modulus does not 2015-05-10 17:11:04 +00:00
vte
vx In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
vxge Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
watchdog CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
wb In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
wbwd Revert r279933; this is going to be fixed in sbuf instead. 2015-03-14 13:02:08 +00:00
wds Add locking to wds(4) and mark MPSAFE. 2014-11-18 22:12:51 +00:00
wi Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
wl Various fixes for wl(4): 2014-11-20 20:09:18 +00:00
wpi Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
wtap Change three methods in struct ieee80211com, namely ic_updateslot, 2015-05-25 19:53:29 +00:00
xe In order to reduce use of M_EXT outside of the mbuf allocator and 2015-01-06 12:59:37 +00:00
xen CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
xl