freebsd-dev/sys/dev
Adrian Chadd 516f67965a Break the RX processing up into smaller chunks of 128 frames each.
Right now processing a full 512 frame queue takes quite a while (measured
on the order of milliseconds.) Because of this, the TX processing ends up
sometimes preempting the taskqueue:

* userland sends a frame
* it goes in through net80211 and out to ath_start()
* ath_start() will end up either direct dispatching or software queuing a
  frame.

If TX had to wait for RX to finish, it would add quite a few ms of
additional latency to the packet transmission.  This in the past has
caused issues with TCP throughput.

Now, as part of my attempt to bring sanity to the TX/RX paths, the first
step is to make the RX processing happen in smaller 'parts'. That way
when TX is pushed into the ath taskqueue, there won't be so much latency
in the way of things.

The bigger scale change (which will come much later) is to actually
process the frames in the ath_intr taskqueue but process _frames_ in
the ath driver taskqueue.  That would reduce the latency between
processing and requeuing new descriptors. But that'll come later.

The actual work:

* Add ATH_RX_MAX at 128 (static for now);
* break out of the processing loop if npkts reaches ATH_RX_MAX;
* if we processed ATH_RX_MAX or more frames during the processing loop,
  immediately reschedule another RX taskqueue run.  This will handle
  the further frames in the taskqueue.

This should have very minimal impact on the general throughput case,
unless the scheduler is being very very strange or the ath taskqueue
ends up spending a lot of time on non-RX operations (such as TX
completion.)
2012-10-14 20:31:38 +00:00
..
aac Some aac(4) adapters will always report that a direct access device is 2012-09-25 19:12:12 +00:00
acpi_support acpi_wmi: move wmi_info_list into sc 2012-10-14 09:31:11 +00:00
acpica acpi_thermal: when _ACx is tripped, all _ALi i>= x should be on 2012-10-14 09:32:38 +00:00
adb Release the ADB keyboard mutex when handling the power button 2012-06-23 13:52:44 +00:00
adlink
advansys Add locking to adv(4) driver and mark it MPSAFE. 2012-10-12 21:31:44 +00:00
ae Fix the build. 2012-06-06 09:07:50 +00:00
age Close a race where SIOCGIFMEDIA ioctl get inconsistent link status. 2011-10-17 19:49:00 +00:00
agp After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason 2012-08-05 14:11:42 +00:00
aha
ahb Remove a stale comment. 2012-03-12 20:31:58 +00:00
ahci Switch some PCI register reads from using magic numbers to using the names 2012-09-19 12:27:23 +00:00
aic
aic7xxx In sys/dev/aic7xxx/aic79xx_osm.c, function ahd_attach(), initialize the 2012-08-06 20:01:32 +00:00
alc Switch some PCI register reads from using magic numbers to using the names 2012-09-19 12:27:23 +00:00
ale Fix typo. Check against number of allocated MSI-X vectors. 2012-10-08 07:01:07 +00:00
altera Correct double "the the" 2012-09-14 21:28:56 +00:00
amdsbwd amdsbwd: update to support SB8xx southbridges 2011-06-07 06:18:02 +00:00
amdtemp - Add support for Family 12h, 14h and 15h processors. 2012-02-24 00:02:46 +00:00
amr Further adjust the workaround in r234501. Rounding all small requests up 2012-10-05 15:52:31 +00:00
an Convert a number of drivers to obtaining their parent DMA tag from their 2012-03-12 08:03:51 +00:00
arcmsr Fix typo: s/unknow/unknown 2012-10-09 06:15:16 +00:00
asmc
asr Replace homegrown list implementation in sys/dev/asr/asr.c with 2012-04-20 21:17:33 +00:00
ata Add checks for ata_sata_scr_read() return statuses. It is mostly to silence 2012-10-10 17:51:23 +00:00
ath Break the RX processing up into smaller chunks of 128 frames each. 2012-10-14 20:31:38 +00:00
atkbdc Fix typo: s/protocl/protocol 2012-09-20 10:07:31 +00:00
auxio
bce Remove a spurious bace which cause build fail in case BCE_DEBUG option 2012-08-06 22:53:24 +00:00
bfe ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
bge Add APE firmware support and improve firmware handshake procedure. 2012-10-11 06:43:43 +00:00
bktr Revert previous commit... 2012-10-10 08:36:38 +00:00
bm ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
buslogic Correct double "the the" 2012-09-14 21:28:56 +00:00
bwi Add opt_wlan.h includes, so IEEE80211_* configuration changes are 2012-05-12 15:11:53 +00:00
bwn Fix some net80211 enum nits: 2011-12-17 10:23:17 +00:00
bxe The drbr(9) API appeared to be so unclear, that most drivers in 2012-09-28 18:28:27 +00:00
cardbus - Add a bus_dma tag to each PCI bus that is a child of a Host-PCI bridge. 2012-03-02 20:38:04 +00:00
cas - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
ce Fix clang warnings in sys/dev/ce/if_ce.c and sys/dev/cp/if_cp.c, 2011-12-29 17:46:24 +00:00
cesa Add support for Marvell 88F6282. 2012-07-28 21:56:24 +00:00
cfe kern cons: introduce infrastructure for console grabbing by kernel 2011-12-17 15:08:43 +00:00
cfi CFI fixes for big endian archs. 2012-03-27 15:13:12 +00:00
ciss Convert a number of drivers to obtaining their parent DMA tag from their 2012-03-12 08:03:51 +00:00
cm Replace inline static' by static inline'. 2011-12-13 14:06:01 +00:00
cmx
coretemp #PROCHOT assertion is sticky after reading the MSR (accordingly with 2011-09-19 10:58:30 +00:00
cp Fix clang warnings in sys/dev/ce/if_ce.c and sys/dev/cp/if_cp.c, 2011-12-29 17:46:24 +00:00
cpuctl Add VIA microde update support to cpuctl(4) and cpucontrol(8). 2011-12-12 12:30:44 +00:00
cpufreq
cs Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
ct Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
ctau
cx
cxgb Revert previous commit... 2012-10-10 08:36:38 +00:00
cxgbe Temporary fix for kern/172364. 2012-10-12 21:58:21 +00:00
cy
dc - Change the module order of these MAC drivers to be last so they are 2012-05-11 02:40:40 +00:00
dcons kern cons: introduce infrastructure for console grabbing by kernel 2011-12-17 15:08:43 +00:00
de More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
digi
dpms
dpt Fix the following clang warning in dpt(4): 2012-04-21 14:23:46 +00:00
drm Streamline use of cdevpriv and correct some corner cases. 2012-08-15 16:19:39 +00:00
drm2 Revert previous commit... 2012-10-10 08:36:38 +00:00
e1000 The drbr(9) API appeared to be so unclear, that most drivers in 2012-09-28 18:28:27 +00:00
ed Fix off by one error in mbuf access. Previously it caused panic. 2011-12-05 18:10:43 +00:00
eisa - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
en Final pass at having devices use their bus parent for dma tags. The 2012-03-12 19:29:35 +00:00
ep ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
esp - Merge from NetBSD: 2012-08-06 08:58:54 +00:00
et Align the PCI Express #defines with the style used for the PCI-X 2012-09-18 22:04:59 +00:00
etherswitch Fix tiypo. 2012-10-11 21:19:42 +00:00
ex Convert files to UTF-8 2012-01-15 13:23:18 +00:00
exca
fatm
fb Piggyback MIPS changes and add ARM syscons support for devices with 2012-08-25 23:59:31 +00:00
fdc Replace inline static' by static inline'. 2011-12-13 14:06:01 +00:00
fdt If virtual addresses are not set use one to one mapping. 2012-09-14 09:45:13 +00:00
fe Improve media status reporting, when the driver knows... 2012-01-30 22:47:02 +00:00
filemon There's no need to make filemon specific to i386 and amd64. All 2012-07-02 20:36:26 +00:00
firewire Fix an issue that caused the kernel to panic inside CTL when trying 2012-06-26 14:51:35 +00:00
flash Add more SPI flash IDs. 2012-09-25 22:12:07 +00:00
fxp - Change the module order of these MAC drivers to be last so they are 2012-05-11 02:40:40 +00:00
gem - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
glxiic Fix breakage on pc98 by redefining DEBUG(). 2011-05-15 19:04:08 +00:00
glxsb More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
gpio Remove extra semicolon which rendered condition useless 2012-04-02 00:11:26 +00:00
gxemul Correct an error in gxemul_disk_write(). It was issuing the command to 2012-09-03 02:32:00 +00:00
hatm More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
hifn Convert a number of drivers to obtaining their parent DMA tag from their 2012-03-12 08:03:51 +00:00
hme - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
hpt27xx Remove spurious 8bit chars, turning files into plain ASCII. 2012-01-15 13:23:33 +00:00
hptiop Add PCI IDs for various new High Point RocketRAID 43xx and 3xxx devices. 2012-08-06 05:27:26 +00:00
hptmv It seems that what the code really meant is that when a write is completed, 2012-09-07 19:00:27 +00:00
hptrr attach_generic causes missing devices in /dev when the driver 2012-06-17 02:46:27 +00:00
hwpmc hwpmc amd_pcpu_fini: fix a bug in code locked under DEBUG 2012-09-18 13:33:39 +00:00
ic
ichsmb - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
ichwd Remove use of explicit bus space tags and handles and use methods that 2012-01-05 16:27:32 +00:00
ida Rework the DMA handling in ida(4) and add locking to make this driver 2012-08-27 17:24:07 +00:00
ie Free result of device_get_children(9). 2012-09-30 09:21:10 +00:00
ieee488 Convert files to UTF-8 2012-01-15 13:23:43 +00:00
if_ndis Convert a number of drivers to obtaining their parent DMA tag from their 2012-03-12 08:03:51 +00:00
iicbus Remove unused variables. 2012-09-29 16:15:27 +00:00
iir Remove comments about creating DMA tags as children of the DMA tags of their 2012-03-12 19:29:32 +00:00
io
ipmi - Re-shuffle the <machine/pc/bios.h> headers to move all kernel-specific 2012-09-28 11:59:32 +00:00
ips Convert a number of drivers to obtaining their parent DMA tag from their 2012-03-12 08:03:51 +00:00
ipw Use suspend/resume methods provided by net80211. This ensures that the 2012-03-23 19:32:30 +00:00
isci Add support for locate LED. 2012-10-10 18:01:56 +00:00
iscsi/initiator Revert previous commit... 2012-10-10 08:36:38 +00:00
isf Add isf(4), a driver for the Intel StrataFlash family of NOR flash parts. 2012-08-25 18:08:20 +00:00
isp Minor correction. 2012-09-17 02:50:16 +00:00
ispfw Switch to using FC-Tape firmware. 2012-07-26 13:58:43 +00:00
iwi Use suspend/resume methods provided by net80211. This ensures that the 2012-03-23 19:32:30 +00:00
iwn We need to defer passing the DELBA request to the firmware until the aggr 2012-06-27 16:07:01 +00:00
ixgb More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
ixgbe The drbr(9) API appeared to be so unclear, that most drivers in 2012-09-28 18:28:27 +00:00
jme Align the PCI Express #defines with the style used for the PCI-X 2012-09-18 22:04:59 +00:00
joy
kbd Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
kbdmux Restore binary compatibility for GIO_KEYMAP and PIO_KEYMAP. 2011-07-17 08:19:19 +00:00
ksyms Streamline use of cdevpriv and correct some corner cases. 2012-08-15 16:19:39 +00:00
le Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
led
lge ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
lindev
lmc More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
malo Fix some net80211 enum nits: 2011-12-17 10:23:17 +00:00
mc146818
mca - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
mcd
md After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason 2012-08-05 14:11:42 +00:00
mem
mfi Grab the mfi_config_lock while performing a MFI_DCMD_CFG_FOREIGN_IMPORT 2012-09-26 14:14:06 +00:00
mge Merging of projects/armv6, part 6 2012-08-15 04:07:18 +00:00
mii For 5717C/5719C/5720C and 57765 PHYs, do not perform any special 2012-10-11 06:07:48 +00:00
mk48txx Add support for MK48T37. 2011-05-15 13:17:08 +00:00
mlx Remove FreeBSD 4.x compat shims. Verified by md5. 2012-09-26 14:17:14 +00:00
mly Remove bogus break statements. 2012-09-18 02:19:43 +00:00
mmc Remove an unneeded NULL check after M_WAITOK. 2012-09-30 09:26:26 +00:00
mn
mps Add casts to unbreak the i386 PAE build for the mps(4) driver. 2012-10-02 23:04:12 +00:00
mpt Fix an issue that caused the kernel to panic inside CTL when trying 2012-06-26 14:51:35 +00:00
mse
msk For Yukon II controllers that implement optional temperature sensor 2012-04-25 02:46:13 +00:00
mvs Add support for Marvell 88F6282. 2012-07-28 21:56:24 +00:00
mwl Fix the RX free list locking creation and destruction to be consistent 2012-04-17 04:52:57 +00:00
mxge Revert previous commit... 2012-10-10 08:36:38 +00:00
my ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
nand Add a driver for the Freescale FCM module in the localbus controller. 2012-07-03 01:00:29 +00:00
ncv Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
netmap Reword comment to try to improve clarity, and fix a typo. 2012-08-13 19:14:45 +00:00
nfe ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
nge - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
nmdm Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
nsp Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
null Fix for PR 138526. 2012-01-11 15:00:16 +00:00
nvd Revert previous commit... 2012-10-10 08:36:38 +00:00
nve More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
nvme Count number of times each queue pair's interrupt handler is invoked. 2012-10-10 23:35:16 +00:00
nvram
nvram2env
nxge Fix the following compilation warnings in nxge(4): 2012-04-20 21:43:19 +00:00
oce The drbr(9) API appeared to be so unclear, that most drivers in 2012-09-28 18:28:27 +00:00
ofw - Add OF_hasprop() and ofw_bus_has_prop(). These can be used to check 2012-08-18 11:25:07 +00:00
patm More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
pbio
pccard Simplify resource activation a bit. 2012-06-28 07:26:44 +00:00
pccbb Restore the PCI bridge configuration upon resume. 2012-07-31 18:47:17 +00:00
pcf Make ofw_bus_get_node() consistently return -1 when there is no associated 2012-03-15 22:53:39 +00:00
pci Fix zillions of style(9) and spacing bugs introduced by r240981. 2012-09-27 10:46:22 +00:00
pcn Fix logic error 2012-02-27 08:57:02 +00:00
pdq
powermac_nvram "nvram,flash" may not be the first in the compatible list property of the 2012-05-20 02:43:54 +00:00
ppbus Rename device_delete_all_children() into device_delete_children(). 2011-11-22 21:56:55 +00:00
ppc Rename device_delete_all_children() into device_delete_children(). 2011-11-22 21:56:55 +00:00
pst Convert files to UTF-8 2012-01-15 13:23:18 +00:00
pty Fix whitespace inconsistencies in the TTY layer and its drivers owned by me. 2011-06-26 18:26:20 +00:00
puc Add support for SIIG Cyber Serial Dual PCI 16C850 2012-08-05 19:37:18 +00:00
qlxgb Do not announce IPv6 TSO support yet. The in-tree driver does not seem 2012-04-23 21:49:11 +00:00
quicc - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
ral Add support for Ralink RT2800/RT3000 chipsets. 2012-05-10 17:41:16 +00:00
random Rename the IVY_RNG option to RDRAND_RNG. 2012-09-13 10:12:16 +00:00
rc
re Switch some PCI register reads from using magic numbers to using the names 2012-09-19 12:27:23 +00:00
rndtest Revert previous commit... 2012-10-10 08:36:38 +00:00
rp
rt ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
safe More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
sbni
scc - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
scd
sdhci Return back double spacing. 2012-07-30 08:56:56 +00:00
sec Recognize version 3.1 of the SEC crypto engine. 2012-05-24 21:24:23 +00:00
sf Remove unused variable mii. 2012-05-11 03:17:32 +00:00
sfxge M_DONTWAIT is a flag from historical mbuf(9) 2012-04-10 06:52:21 +00:00
sge - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
si
siba Expand the set of APIs available for locating PCI capabilities: 2012-03-03 18:08:57 +00:00
siis Partially revert r236666: 2012-06-10 11:17:14 +00:00
sio Document some MP assumptions for sio. 2012-06-28 07:28:39 +00:00
sis ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
sk ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
smbus - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
smc - Do not reinitialize the card if it is already running. 2012-04-07 06:56:38 +00:00
sn ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
snc ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
snp Second-to-last commit implementing Capsicum capabilities in the FreeBSD 2011-08-11 12:30:23 +00:00
sound Cast vendor-specific spell on VIA VT1818S codecs alike to VT1708S to 2012-10-09 17:06:31 +00:00
speaker Do not define bool/true/false if the symbols already exist. 2011-12-12 18:43:24 +00:00
spibus Fetch the chip select in the bridge driver, like all the other spi 2012-08-23 22:38:37 +00:00
ste - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
stg Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
stge ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
streams Revert previous commit... 2012-10-10 08:36:38 +00:00
sym Revert the use of BUS_DMA_ALLOCNOW when creating the DMA tag for user 2012-07-19 14:43:46 +00:00
syscons Piggyback MIPS changes and add ARM syscons support for devices with 2012-08-25 23:59:31 +00:00
tdfx Revert previous commit... 2012-10-10 08:36:38 +00:00
terasic Add terasic_de4led, a led(4) driver for the on-board 8-element LED on the 2012-08-26 09:21:59 +00:00
ti Eliminate vestiges of page coloring. 2011-12-15 05:07:16 +00:00
tl ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
tpm
trm More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
tsec Do not reinitialise the interface if it is already running, this prevents the 2012-05-09 00:56:11 +00:00
twa Return CAM_SEL_TIMEOUT and CAM_DEV_NOT_THERE instead of CAM_TID_INVALID 2012-06-22 21:46:41 +00:00
twe Remove remaining 4.x compat shims. No resulting changes (verified by 2012-09-07 18:41:19 +00:00
tws Use CAM_SEL_TIMEOUT and CAM_DEV_NOT_THERE to report missing targets or 2012-09-24 21:45:41 +00:00
tx - Remove attempts to implement setting of BMCR_LOOP/MIIF_NOLOOP 2011-05-03 19:51:29 +00:00
txp
uart Add PrimeCell UART (PL011) driver 2012-08-30 20:31:53 +00:00
ubsec More conversions of drivers to use the PCI parent DMA tag. 2012-03-12 18:15:08 +00:00
usb Implement modem control in u3g. Tested on Option GTM382W, Huawei E220, 2012-10-14 19:15:54 +00:00
utopia Revert previous commit... 2012-10-10 08:36:38 +00:00
vge Remove unused variable mii 2012-02-11 08:12:52 +00:00
viawd Fix viawd(4) that was only working as a module. 2012-06-20 09:01:44 +00:00
virtio Fix build with PAE enabled. I doubt any code uses CAM_SCATTER_VALID or 2012-10-12 22:06:06 +00:00
vkbd Get rid of D_PSEUDO. 2011-10-18 08:09:44 +00:00
vr Convert the if_vr(4) driver model to the interrupt filter model and use 2012-05-12 14:37:25 +00:00
vte Remove unused variable mii. 2011-11-23 05:34:01 +00:00
vx ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
vxge The drbr(9) API appeared to be so unclear, that most drivers in 2012-09-28 18:28:27 +00:00
watchdog - Add the possibility to reuse the already last used timeout when patting 2011-04-27 16:43:03 +00:00
wb ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again 2012-01-07 09:41:57 +00:00
wbwd Add device ids for the Winbond 83627DHG-P chip and set the registers to 2012-05-29 16:39:42 +00:00
wds Final pass at having devices use their bus parent for dma tags. The 2012-03-12 19:29:35 +00:00
wi If an interrupt is received with no vap attached, just fail LINK events. 2012-02-25 08:01:29 +00:00
wl
wpi Add a missing #include, required for IEEE80211_DEBUG. 2012-06-01 06:20:39 +00:00
wtap Don't grab an unreferenced pointer to the VAP bss node. 2012-08-27 23:18:41 +00:00
xe Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
xen s/ is is / is /g 2012-09-14 22:00:03 +00:00
xl - Change the module order of these MAC drivers to be last so they are 2012-05-11 02:40:40 +00:00