linux/drivers/net/wireless
Rajkumar Manoharan 3c97f5de1f ath10k: implement NAPI support
Add NAPI support for rx and tx completion. NAPI poll is scheduled
from interrupt handler. The design is as below

 - on interrupt
     - schedule napi and mask interrupts
 - on poll
   - process all pipes (no actual Tx/Rx)
   - process Rx within budget
   - if quota exceeds budget reschedule napi poll by returning budget
   - process Tx completions and update budget if necessary
   - process Tx fetch indications (pull-push)
   - push any other pending Tx (if possible)
   - before resched or napi completion replenish htt rx ring buffer
   - if work done < budget, complete napi poll and unmask interrupts

This change also get rid of two tasklets (intr_tq and txrx_compl_task).

Measured peak throughput with NAPI on IPQ4019 platform in controlled
environment. No noticeable reduction in throughput is seen and also
observed improvements in CPU usage. Approx. 15% CPU usage got reduced
in UDP uplink case.

DL: AP DUT Tx
UL: AP DUT Rx

IPQ4019 (avg. cpu usage %)

========
                TOT              +NAPI
              ===========      =============
TCP DL       644 Mbps (42%)    645 Mbps (36%)
TCP UL       673 Mbps (30%)    675 Mbps (26%)
UDP DL       682 Mbps (49%)    680 Mbps (49%)
UDP UL       720 Mbps (28%)    717 Mbps (11%)

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-09-09 14:49:47 +03:00
..
admtek cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
ath ath10k: implement NAPI support 2016-09-09 14:49:47 +03:00
atmel mac80211: Add support for beacon report radio measurement 2016-07-06 14:53:19 +02:00
broadcom net: wireless: broadcom: brcm80211: brcmfmac: usb: don't print error when allocating urb fails 2016-08-13 14:53:40 -07:00
cisco wireless: airo: rename 'register' variable 2016-06-29 18:56:20 +03:00
intel * bump firmware version to load newer firmwares 2016-07-18 22:46:28 +03:00
intersil net: wireless: intersil: orinoco: orinoco_usb: don't print error when allocating urb fails 2016-08-13 14:53:41 -07:00
marvell net: wireless: marvell: mwifiex: usb: don't print error when allocating urb fails 2016-08-13 14:53:41 -07:00
mediatek cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
ralink rt2800lib: enable MFP if hw crypt is disabled 2016-04-26 12:30:43 +03:00
realtek net: wireless: realtek: rtlwifi: usb: don't print error when allocating urb fails 2016-08-13 14:53:41 -07:00
rsi rsi: eliminate superfluous NULL check 2016-06-14 17:17:58 +03:00
st mac80211: Add support for beacon report radio measurement 2016-07-06 14:53:19 +02:00
ti mac80211: Add ieee80211_hw pointer to get_expected_throughput 2016-08-05 14:23:25 +02:00
zydas treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
Kconfig
mac80211_hwsim.c mac80211: Add support for beacon report radio measurement 2016-07-06 14:53:19 +02:00
mac80211_hwsim.h drivers/wireless: use nla_put_u64_64bit() 2016-04-26 12:00:48 -04:00
Makefile
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c nl80211: support beacon report scanning 2016-07-06 14:51:31 +02:00
wl3501_cs.c wl3501_cs: avoid bogus gcc-6 warning 2016-06-16 18:06:08 +03:00
wl3501.h