linux/drivers/net
Rajkumar Manoharan 83e164b767 ath10k: improve wake_tx_queue ops performance
txqs_lock is interfering with wake_tx_queue submitting more frames.
so queues don't get filled in and don't keep firmware/hardware busy
enough. This change helps to reduce the txqs_lock contention and
wake_tx_queue() blockage to being possible in txrx_unref().

To reduce turn around time of wake_tx_queue ops and to maintain fairness
among all txqs, the callback is updated to push first txq alone from
pending list for every wake_tx_queue call. Remaining txqs will be
processed later upon tx completion.

Below improvements are observed in push-only mode and validated on
IPQ4019 platform. With this change, in AP mode ~10Mbps increase is
observed in downlink (AP -> STA) traffic and approx. 5-10% of CPU
usage is reduced.

Major improvement is observed in 1-hop Mesh mode topology in 11ACVHT80.
Compared to Infra mode, CPU overhead is higher in Mesh mode due to path
lookup and no fast-xmit support. So reducing spin lock contention is
helping in Mesh.

             TOT       +change
           --------    --------
TCP DL     545 Mbps    595 Mbps
TCP UL     555 Mbps    585 Mbps

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-09-02 18:51:43 +03:00
..
appletalk
arcnet
bonding bonding: fix the typo 2016-08-09 14:57:14 -07:00
caif virtio/vhost: new features for 4.8 2016-08-06 09:20:13 -04:00
can net: can: usb: usb_8dev: don't print error when allocating urb fails 2016-08-13 14:53:39 -07:00
cris
dsa net: dsa: mv88e6xxx: use the new PHY API 2016-08-15 16:43:56 -07:00
ethernet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-18 01:17:32 -04:00
fddi
fjes fjes: Delete owner assignment 2016-08-15 11:57:55 -07:00
hamradio
hippi
hyperv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-18 01:17:32 -04:00
ieee802154 mrf24j40: avoid uninitialized byte in SPI transfer to radio. 2016-07-12 11:54:53 +02:00
ipvlan ipvlan: Scrub skb before crossing the namespace boundry 2016-07-25 21:47:26 -07:00
irda
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-18 01:17:32 -04:00
plip
ppp pptp: Refactor the struct and macros of PPTP codes 2016-08-15 10:55:53 -07:00
slip
team net: introduce default neigh_construct/destroy ndo calls for L2 upper devices 2016-07-05 09:06:28 -07:00
usb net: usb: usbnet: don't print error when allocating urb fails 2016-08-13 14:53:40 -07:00
vmxnet3 vmxnet3: update to version 3 2016-06-16 22:37:05 -07:00
wan wan/fsl_ucc_hdlc: avoid possible NULL pointer dereference 2016-08-01 13:32:52 -07:00
wimax net: wimax: i2400m: usb-notif: don't print error when allocating urb fails 2016-08-13 14:53:40 -07:00
wireless ath10k: improve wake_tx_queue ops performance 2016-09-02 18:51:43 +03:00
xen-netback
dummy.c
eql.c
geneve.c drivers/net: fixup comments after "Future-proof tunnel offload handlers" 2016-07-11 13:42:11 -07:00
gtp.c gtp: remove unused including <linux/version.h> 2016-06-17 22:28:49 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c net: remove type_check from dev_get_nest_level() 2016-08-13 15:15:54 -07:00
macvlan.c net: remove type_check from dev_get_nest_level() 2016-08-13 15:15:54 -07:00
macvtap.c macvtap: fix use after free for skb_array during release 2016-08-11 09:55:51 -07:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: Don't assume type tun in tun_device_event 2016-07-08 23:58:57 -04:00
veth.c
virtio_net.c virtio-net: Remove more stack DMA 2016-07-19 19:25:43 -07:00
vrf.c net: vrf: Add support for PREROUTING rules on vrf device 2016-07-05 11:50:05 -07:00
vxlan.c net: vxlan: lwt: Fix vxlan local traffic. 2016-08-08 14:16:24 -07:00
xen-netfront.c