linux/drivers/net/ethernet
Marcin Wojtas a29b623556 net: mvneta: add BQL support
Tests showed that when whole bandwidth is consumed, the latency for
various kind of traffic can reach high values. With saturated
link (e.g. with iperf from target to host) simple ping could take
significant amount of time. BQL proved to improve this situation
when implemented in mvneta driver. Measurements of ping latency
for 3 link speeds:
Speed | Latency w/o BQL | Latency with BQL
10    |      7-14 ms    |     3.5 ms
100   |      2-12 ms    |     0.6 ms
1000  |   often timeout |   up to 2ms

Decreasing latency as above result in sligt performance cost - 4kpps
(-1.4%) when pushing 64B packets via two bridged interfaces of Armada 38x.
For 1500B packets in the same setup, the mpstat tool showed +8% of
CPU occupation (default affinity, second CPU idle). Even though this
cost seems reasonable to take, considering other improvements.

This commit adds byte queue limit mechanism for the mvneta driver.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-16 20:07:29 -05:00
..
3com net: 3com: typhoon: typhoon_init_one: make return values more specific 2016-12-30 15:26:22 -05:00
8390 Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
adaptec Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
adi Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 19:56:15 -08:00
aeroflex net: phy: expose phy_aneg_done API for use by drivers 2016-11-13 00:56:26 -05:00
agere
alacritech net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
allwinner net: ethernet: sun4i-emac: Read rxhdr in CPU byte-order 2016-11-15 22:05:54 -05:00
alteon Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
altera Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
amazon net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-09 15:39:11 -05:00
apm net: remove useless memset's in drivers get_stats64 2017-01-08 17:51:44 -05:00
apple
arc net: arc_emac: add dependencies on associated arches and compile test 2016-11-29 18:57:36 -05:00
atheros alx: add feature flag for rx checksumming 2017-01-09 14:52:54 -05:00
aurora Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
broadcom bnxt_en: Add the ulp_sriov_cfg hooks for bnxt_re RDMA driver. 2017-01-13 23:21:31 -05:00
brocade net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
cadence net: macb: Updated resource allocation function calls to new version of API. 2017-01-03 09:35:42 -05:00
calxeda net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
cavium liquidio: use fallback for selecting txq 2017-01-13 20:17:35 -05:00
chelsio cxgb4: Shutdown adapter if firmware times out or errors out 2017-01-16 13:35:30 -05:00
cirrus net: cirrus: ep93xx: use new api ethtool_{get|set}_link_ksettings 2016-12-17 21:31:41 -05:00
cisco net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
davicom net: davicom: dm9000: use new api ethtool_{get|set}_link_ksettings 2016-12-17 21:31:41 -05:00
dec net: dec: winbond-840: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
dlink net: dlink: sundance: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
emulex Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-09 15:39:11 -05:00
ezchip
faraday net: faraday: ftmac100: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
freescale net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
fujitsu Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
hisilicon net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
hp
i825xx
ibm net: ibm: ibmvnic: use new api ethtool_{get|set}_link_ksettings 2017-01-09 12:09:10 -05:00
intel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-11 14:43:39 -05:00
marvell net: mvneta: add BQL support 2017-01-16 20:07:29 -05:00
mediatek net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
mellanox Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-11 14:43:39 -05:00
micrel
microchip encx24j600: Fix some checkstyle warnings 2016-12-16 13:31:47 -05:00
moxa
myricom net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
natsemi Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
neterion net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
netronome net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
nuvoton
nvidia net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
nxp
oki-semi
packetengines Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pasemi
qlogic net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
qualcomm net: qcom/emac: add ethtool support 2017-01-10 13:26:25 -05:00
rdc r6040: move spinlock in r6040_close as SOFTIRQ-unsafe lock order detected 2016-12-17 21:35:12 -05:00
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-09 15:39:11 -05:00
renesas sh_eth: enable wake-on-lan for sh7763 2017-01-09 15:55:08 -05:00
rocker ipv4: fib: Replay events when registering FIB notifier 2016-12-03 19:29:35 -05:00
samsung net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
seeq
sfc sfc: get PIO buffer size from the NIC 2017-01-16 14:00:46 -05:00
sgi Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
silan
sis Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
smsc Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
stmicro stmmac: indent an if statement 2017-01-15 22:14:04 -05:00
sun net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
tehuti
ti net: netcp: correct netcp_get_stats function signature 2017-01-11 10:48:21 -05:00
tile tilepro: Fix non-void return from void function 2017-01-12 15:14:09 -05:00
toshiba Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-15 10:54:36 -05:00
tundra
via net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
wiznet
xilinx net: xilinx: emaclite: Remove xemaclite_remove_ndev() 2017-01-05 11:29:22 -05:00
xircom Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
xscale net: ethernet: ixp4xx_eth: Utilize phy_ethtool_nway_reset 2016-11-15 16:33:35 -05:00
dnet.c
dnet.h
ec_bhf.c net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
ethoc.c net: ethoc: Remove unused members from struct ethoc 2017-01-05 11:26:59 -05:00
fealnx.c net: fealnx: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
jme.c
jme.h
Kconfig synopsys: remove dwc_eth_qos driver 2017-01-15 22:00:59 -05:00
korina.c net: korina: Fix NAPI versus resources freeing 2016-12-26 11:26:16 -05:00
lantiq_etop.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-10 16:21:55 -05:00
Makefile synopsys: remove dwc_eth_qos driver 2017-01-15 22:00:59 -05:00
netx-eth.c