linux_dsm_epyc7002/drivers/net/ethernet
Andy Gospodarek fcdefccac9 bgmac: stop clearing DMA receive control register right after it is set
Current bgmac code initializes some DMA settings in the receive control
register for some hardware and then immediately clears those settings.
Not clearing those settings results in ~420Mbps *improvement* in
throughput; this system can now receive frames at line-rate on Broadcom
5871x hardware compared to ~520Mbps today.  I also tested a few other
values but found there to be no discernible difference in CPU
utilization even if burst size and prefetching values are different.

On the hardware tested there was no need to keep the code that cleared
all but bits 16-17, but since there is a wide variety of hardware that
used this driver (I did not look at all hardware docs for hardware using
this IP block), I find it wise to move this call up and clear bits just
after reading the default value from the hardware rather than completely
removing it.

This is a good candidate for -stable >=3.14 since that is when the code
that was supposed to improve performance (but did not) was introduced.

Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
Fixes: 56ceecde1f ("bgmac: initialize the DMA controller of core...")
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-10-31 20:51:01 -04:00
..
3com 3c59x: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:57 -07:00
8390
adaptec starfire: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:57 -07:00
adi
aeroflex
agere net: ethernet: et131x: constify ethtool_ops structures 2016-08-31 09:22:30 -07:00
allwinner
alteon
altera
amazon net: ena: change the return type of ena_set_push_mode() to be void. 2016-08-23 17:42:33 -07:00
amd ethernet: amd: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:58 -07:00
apm drivers: net: xgene: Fix MSS programming 2016-09-23 08:38:38 -04:00
apple
arc net: arc_emac: mark arc_mdio_reset() static 2016-09-06 15:58:59 -07:00
atheros alx: fix error handling in __alx_open 2016-09-15 20:15:26 -04:00
aurora net: ethernet: nb8800: Fix module autoload 2016-10-17 13:03:02 -04:00
broadcom bgmac: stop clearing DMA receive control register right after it is set 2016-10-31 20:51:01 -04:00
brocade Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-23 06:46:57 -04:00
cadence net: macb: NULL out phydev after removing mdio bus 2016-10-07 23:55:59 -04:00
calxeda
cavium liquidio: CN23XX: fix a loop timeout 2016-10-13 12:12:50 -04:00
chelsio cxgb4: Fix error handling in alloc_uld_rxqs(). 2016-10-29 14:56:26 -04:00
cirrus
cisco enic: fix rq disable 2016-10-29 17:23:39 -04:00
davicom
dec
dlink sundance: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:58 -07:00
emulex be2net: Enable VF link state setting for BE3 2016-10-09 09:30:39 -04:00
ezchip net: nps_enet: Fix module autoload 2016-10-17 13:03:02 -04:00
faraday net/faraday: Stop NCSI device on shutdown 2016-10-04 02:11:51 -04:00
freescale net: fec: Call swap_buffer() prior to IP header alignment 2016-10-23 17:41:41 -04:00
fujitsu
hisilicon Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-10-29 20:33:20 -07:00
hp
i825xx i825xx: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:58 -07:00
ibm ibmvnic: Fix missing brackets in init_sub_crq_irqs 2016-10-29 17:18:46 -04:00
intel i40e: fix call of ndo_dflt_bridge_getlink() 2016-10-27 14:12:52 -07:00
marvell net: mv643xx_eth: Fetch the phy connection type from DT 2016-10-29 15:11:36 -04:00
mediatek net: ethernet: mediatek: get hw lro capability by the chip id instead of by the dtsi 2016-10-06 21:08:08 -04:00
mellanox mlxsw: spectrum: Fix incorrect reuse of MID entries 2016-10-31 15:34:43 -04:00
micrel
microchip kthread: kthread worker API cleanup 2016-10-11 15:06:33 -07:00
moxa
myricom
natsemi natsemi: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:59 -07:00
neterion
netronome nfp: bpf: zero extend 4 byte context loads 2016-09-30 02:10:15 -04:00
nuvoton
nvidia
nxp net: lpc_eth: Check clk_prepare_enable() error 2016-08-23 17:10:16 -07:00
oki-semi
packetengines
pasemi
qlogic qede: Fix statistics' strings for Tx/Rx queues 2016-10-31 15:33:33 -04:00
qualcomm net: qcom/emac: Fix module autoload for OF registration 2016-10-17 13:03:03 -04:00
rdc net: r6040: add in missing white space in error message text 2016-09-18 22:22:16 -04:00
realtek r8169: set coherent DMA mask as well as streaming DMA mask 2016-10-15 17:29:38 -04:00
renesas sh_eth: add R8A7743/5 support 2016-09-28 05:01:50 -04:00
rocker rocker: fix error return code in rocker_world_check_init() 2016-10-26 17:20:36 -04:00
samsung
seeq
sfc net: Update API for VF vlan protocol 802.1ad support 2016-09-24 08:01:26 -04:00
sgi
silan
sis sis900: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:59 -07:00
smsc net: smc91x: take into account register shift 2016-09-25 23:45:32 -04:00
stmicro stmmac: display the descriptors if DES0 = 0 2016-10-20 11:27:25 -04:00
sun treewide: remove redundant #include <linux/kconfig.h> 2016-10-11 15:06:33 -07:00
synopsys dwc_eth_qos: enable flow control by default 2016-10-18 10:29:17 -04:00
tehuti net: tehuti: fix typo: "eneble" -> "enable" 2016-08-21 15:21:36 -07:00
ti tlan: avoid unused label with PCI=n 2016-10-13 09:56:00 -04:00
tile
toshiba net: ps3_gelic: Add missing \n to end of deb_dbg message 2016-10-06 20:41:16 -04:00
tundra
via via-velocity: remove null pointer check on array tdinfo->skb_dma 2016-09-09 18:17:33 -07:00
wiznet treewide: remove redundant #include <linux/kconfig.h> 2016-10-11 15:06:33 -07:00
xilinx net: axienet: Remove unused parameter from __axienet_device_reset 2016-10-13 12:15:28 -04:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig
korina.c
lantiq_etop.c
Makefile
netx-eth.c