1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-21 11:13:30 +00:00
freebsd/sys/dev
Adrian Chadd 7dcb2bea01 Re-work how transmit buffer limits are enforced - partly to fix the PR,
but partly to just tidy up things.

The problem here - there are too many TX buffers in the queue! By the
time one needs to transmit an EAPOL frame (for this PR, it's the response
to the group rekey notification from the AP) there are no ath_buf entries
free and the EAPOL frame doesn't go out.

Now, the problem!

* Enforcing the TX buffer limitation _before_ we dequeue the frame?
  Bad idea. Because..
* .. it means I can't check whether the mbuf has M_EAPOL set.

The solution(s):

* De-queue the frame first
* Don't bother doing the TX buffer minimum free check until after
  we know whether it's an EAPOL frame or not.
* If it's an EAPOL frame, allocate the buffer from the mgmt pool
  rather than the default pool.

Whilst I'm here:

* Add a tweak to limit how many buffers a single node can acquire.
* Don't enforce that for EAPOL frames.
* .. set that to default to 1/4 of the available buffers, or 32,
  whichever is more sane.

This doesn't fix issues due to a sleeping node or a very poor performing
node; but this doesn't make it worse.

Tested:

* AR5416 STA, TX'ing 100+ mbit UDP to an AP, but only 50mbit being received
  (thus the TX queue fills up.)
* .. with CCMP / WPA2 encryption configured
* .. and the group rekey time set to 10 seconds, just to elicit the
  behaviour very quickly.

PR:		kern/138379
2013-05-07 07:52:18 +00:00
..
aac MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
acpi_support Only cleanup CMI-related state on detach if the system supports CMI. 2013-04-29 18:54:31 +00:00
acpica - Some BIOSes use an Extended IRQ resource descriptor in _PRS for a link 2013-04-22 15:51:06 +00:00
adb Use uiomove return value instead of returning 0. 2012-11-13 06:03:43 +00:00
adlink Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
advansys Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ae
age Rework jumbo frame handling. QAC confirmed that the controller 2013-02-05 00:37:45 +00:00
agp Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
aha Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahb Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahci Add IDs for HighPoint RocketRAID 640L/642L/644L -- new series of 4-port 2013-05-02 16:09:06 +00:00
aic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
aic7xxx Correct misleading bootverbose output: ahc_isa_probe -> ahc_isa_identify 2013-04-17 02:33:56 +00:00
alc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ale Make sure to stop both TX and RX MACs in ale_stop_mac(). Previously 2012-12-17 06:01:57 +00:00
altera Partial MFC of change 228122: 2013-04-30 18:29:05 +00:00
amdsbwd Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
amdtemp Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
amr Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
an Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
arcmsr MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
asmc Give device_printf format string to pacify clang warning. 2012-11-09 14:58:26 +00:00
asr
ata Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI 2013-04-14 14:02:34 +00:00
ath Re-work how transmit buffer limits are enforced - partly to fix the PR, 2013-05-07 07:52:18 +00:00
atkbdc List TrackPoint device before generic model. 2013-03-18 23:31:22 +00:00
auxio Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
bce Initialize count in order to appease clang. 2013-03-01 22:05:20 +00:00
bfe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
bge Fix a typo. 2013-04-02 00:57:54 +00:00
bktr Pass a format string to kproc_create() [1] and thus fix the build with 2013-04-30 05:08:17 +00:00
bm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
buslogic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
bvm Probe for existence of the bvm debug port instead of just assuming that it is 2012-10-27 22:54:23 +00:00
bwi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
bwn Fixing a clang warning about using uninitialized variable. 2013-05-06 21:57:44 +00:00
bxe This fixes a out-of-order problem with several 2013-02-07 15:20:54 +00:00
cadence Bring copyright changes with the agreement of Thomas Skibo. 2013-04-28 07:00:36 +00:00
cardbus
cas - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
ce Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
cesa Move initialization of CESA decoding windows from common section 2013-05-06 13:34:36 +00:00
cfe
cfi MFP4 change 222060: 2013-04-30 18:48:11 +00:00
ciss The controller does not zero this data structure, ever. 2013-04-28 20:46:32 +00:00
cm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
cmx
coretemp Mark the coretemp(4) sysctls as MPSAFE, ensuring that Giant won't be held 2013-02-18 22:47:16 +00:00
cp Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
cpuctl cpuctl_do_cpuid: explicitly use ecx=0 for cpuid call 2012-11-04 13:46:28 +00:00
cpufreq Add a quirk to disable this driver for certain older laptops with an ICH2 2013-02-26 18:30:47 +00:00
cs Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ct Use ANSI prototype to fix build with clang. 2012-11-10 14:58:06 +00:00
ctau Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
cx Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
cxgb - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
cxgbe cxgbe: Switch to a better way to install firmware. 2013-05-03 20:09:17 +00:00
cy
dc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
dcons MFcalloutng: 2013-02-19 18:22:25 +00:00
de Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
digi Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
dpms
dpt options DPT_HANDLE_TIMEOUTS hasn't worked since dpt(4) was converted to CAM 2013-04-10 23:20:09 +00:00
drm Fix white spaces. 2013-04-23 18:30:33 +00:00
drm2 drm: Right-shift I2C slave address before passing it to aux channel 2013-04-08 08:37:57 +00:00
e1000 Update Intel email address. 2013-05-02 01:36:52 +00:00
ed Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
eisa
en Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ep Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
esp
et Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
etherswitch Update arswitch to the new API. 2013-04-22 18:58:12 +00:00
ex Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
exca
fatm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
fb Limit the amount of video memory we map for the driver to the maximum value. 2013-03-27 18:06:28 +00:00
fdc Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
fdt Return "start" and "end" to u_long world. Because rman handle addresses as 2013-03-19 14:15:41 +00:00
fe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
filemon A little bit easier to read. 2012-10-26 20:24:13 +00:00
firewire MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
flash Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
fxp Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
gem Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
glxiic This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
glxsb
gpio Style fixes 2012-11-23 19:20:38 +00:00
gxemul Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hatm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hifn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hme Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hpt27xx MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
hptiop Remove ancient compatibility cruft. 2013-04-30 23:36:48 +00:00
hptmv Move hptmv and mpt drivers shutdown a bit later to the SHUTDOWN_PRI_LAST 2013-04-24 19:00:45 +00:00
hptrr Silence warning from clang: 2013-04-28 20:55:45 +00:00
hwpmc Suppress a GCC warning. This warning is actually bogus and newer GCC 2013-05-02 14:55:21 +00:00
ic Add support for A10 uart. 2013-03-01 01:42:31 +00:00
ichsmb Add Intel Lynx Point PCH SMBus Device IDs 2013-01-02 22:01:26 +00:00
ichwd Don't log a message when the watchdog is reloaded. It's not useful to do so 2013-03-09 15:04:44 +00:00
ida
ie Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ieee488
if_ndis Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
iicbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
iir Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
io
ipmi Unlock IPMI sc while performing requests via KCS and SMIC interfaces. 2013-03-25 14:30:34 +00:00
ips Improving r249461 by providing a better way to handle the clang warning. 2013-04-17 21:21:27 +00:00
ipw Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
isci - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
iscsi/initiator MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isf Merge Perforce changeset 219952 to head: 2013-01-13 16:57:11 +00:00
isp MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
ispfw
iwi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
iwn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ixgb Update Intel email address. 2013-05-02 01:36:52 +00:00
ixgbe use netmap_rx_irq() / netmap_tx_irq() to handle interrupts in 2013-04-30 16:18:29 +00:00
jme Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
joy
kbd
kbdmux This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
ksyms
le Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
led MFcalloutng: 2013-02-19 19:25:50 +00:00
lge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
lindev
lmc Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
malo Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mc146818
mca
mcd The other giant locked storage drivers have removed splbio(), for the 2013-02-21 02:34:04 +00:00
md Do not declare that preloaded md(4) supports unmapped bio requests, it 2013-04-02 19:39:31 +00:00
mem
mfi MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
mge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mii For RTL8211B or later PHYs, enable crossover detection and 2013-03-20 05:31:34 +00:00
mk48txx
mlx Remove FreeBSD 4.x compat shims. Verified by md5. 2012-09-26 14:17:14 +00:00
mly MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
mmc Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 23:07:49 +00:00
mn Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
mps Fix uninitialized warning in mps 2013-05-03 10:37:59 +00:00
mpt Move hptmv and mpt drivers shutdown a bit later to the SHUTDOWN_PRI_LAST 2013-04-24 19:00:45 +00:00
mse
msk - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
mvs Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
mwl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mxge - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
my Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
nand Add the chip used in recent GlobalScale Technologies *Plug computers 2013-01-27 00:16:36 +00:00
ncv
netmap remove trailing whitespace 2013-05-02 16:01:04 +00:00
nfe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nmdm
nsp
ntb Add a new driver to support the Intel Non-Transparent Bridge(NTB). 2013-04-29 22:48:53 +00:00
null Provide a device name in the sysctl tree for programs to query the 2012-11-01 17:01:05 +00:00
nvd Add unmapped bio support to nvme(4) and nvd(4). 2013-04-01 16:23:34 +00:00
nve Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nvme Remove the NVME_IDENTIFY_CONTROLLER and NVME_IDENTIFY_NAMESPACE IOCTLs and replace 2013-04-12 17:56:47 +00:00
nvram
nvram2env Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
nxge Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
oce Eliminate excessive $FreeBSD$ headers. 2013-03-08 18:08:12 +00:00
ofw
patm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
pbio
pccard
pccbb
pcf
pci Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI 2013-04-14 14:02:34 +00:00
pcn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
pdq Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
powermac_nvram
ppbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
ppc Fix build. 2013-02-21 12:40:52 +00:00
pst
pty
puc Correct the definition for Exar XR17V258IV: we must use a config_function 2013-03-18 19:22:51 +00:00
qlxgb Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
quicc
ral Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
random Attempt to mitigate poor initialization of arc4 by one-shot 2013-04-19 00:30:52 +00:00
rc
re use netmap_rx_irq() / netmap_tx_irq() to handle interrupts in 2013-04-30 16:18:29 +00:00
rndtest - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
rp
rt Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
safe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sbni Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
scc
scd
sdhci Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 22:38:29 +00:00
sec
sf Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sfxge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
si Remove incorrect comment about splsoftclock. 2013-02-21 07:19:50 +00:00
siba
siis Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
sio Add support for CIR1000 - Cirrus Logic V34 to the sio driver 2012-11-13 20:38:55 +00:00
sis r119712 introduced SIS_TYPE_83816 but it was not actually set in 2013-03-18 04:46:17 +00:00
sk Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
smbus
smc Disable interrupts in filter in order to avoid interrupt storm and 2012-12-13 03:33:01 +00:00
sn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
snc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
snp
sound Some fixes to snd_envy24ht(4) driver: 2013-05-05 19:09:34 +00:00
speaker
spibus
ste Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
stg
stge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
streams Revert previous commit... 2012-10-10 08:36:38 +00:00
sym Don't try and negotiate sync mode if either period or offset are zero. 2013-02-25 14:06:24 +00:00
syscons MFcalloutng (r244249, r244306 by mav): 2013-03-04 14:00:58 +00:00
tdfx Revert previous commit... 2012-10-10 08:36:38 +00:00
terasic Merge Perforce changeset 219952 to head: 2013-01-13 16:57:11 +00:00
ti Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
tl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
tpm
trm Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
tsec Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
twa MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
twe
tws MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
tx Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
txp Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
uart Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 23:07:49 +00:00
ubsec Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
usb Fix compile warning. 2013-05-03 13:33:36 +00:00
utopia Revert previous commit... 2012-10-10 08:36:38 +00:00
vge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
viawd
virtio MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
vkbd
vr Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
vte Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
vx Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
vxge Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
watchdog watchdogd(8) and watchdog(4) enhancements. 2013-02-27 19:03:31 +00:00
wb Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wbwd Add ID for Nuvoton WPCM450RA0BX found on Supermicro X9SCA-F motherboards. 2013-01-11 10:22:09 +00:00
wds Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
wi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wpi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wtap wtap should not set the IEEE80211_F_DATAPAD flag; 2012-12-18 16:15:20 +00:00
xe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
xen - Correct spelling in comments 2013-04-17 11:56:11 +00:00
xl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00