linux/drivers/net
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
..
appletalk
arcnet
bonding Merge branch 'work.uaccess2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-10-11 23:38:39 -07:00
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-10-02 22:20:41 -04:00
cris
dsa net: dsa: bcm_sf2: Do not rely on kexec_in_progress 2016-10-22 16:17:53 -04:00
ethernet bgmac: stop clearing DMA receive control register right after it is set 2016-10-31 20:51:01 -04:00
fddi
fjes
hamradio 6pack: fix buffer length mishandling 2016-09-20 22:51:30 -04:00
hippi
hyperv Revert "hv_netvsc: report vmbus name in ethtool" 2016-10-29 15:03:14 -04:00
ieee802154 fakelb: fix schedule while atomic 2016-09-19 20:19:34 +02:00
ipvlan ipvlan: Introduce l3s mode 2016-09-19 01:25:22 -04:00
irda
phy net: phy: dp83848: add dp83822 PHY support 2016-10-29 17:25:17 -04:00
plip
ppp ppp: declare PPP devices as LLTX 2016-08-31 14:33:09 -07:00
slip
team team: loadbalance: push lacpdus to exact delivery 2016-08-26 13:08:59 -07:00
usb r8152: Fix broken RX checksums. 2016-10-30 20:56:13 -04:00
vmxnet3 vmxnet3: avoid assumption about invalid dma_pa in vmxnet3_set_mc() 2016-10-15 17:47:32 -04:00
wan net: wan: slic_ds26522: Allow driver to built if COMPILE_TEST is enabled 2016-10-14 10:11:49 -04:00
wimax
wireless brcmfmac: avoid maybe-uninitialized warning in brcmf_cfg80211_start_ap 2016-10-27 18:04:54 +03:00
xen-netback xen-netback: fix type mismatch warning 2016-10-13 11:02:25 -04:00
dummy.c
eql.c
geneve.c geneve: avoid using stale geneve socket. 2016-10-29 20:56:31 -04:00
gtp.c
ifb.c
Kconfig ipvlan: Fix dependency issue 2016-09-20 22:55:23 -04:00
LICENSE.SRC
loopback.c
macsec.c macsec: Fix header length if SCI is added if explicitly disabled 2016-10-27 16:21:00 -04:00
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-30 00:54:02 -04:00
veth.c net: veth: Set features for MPLS 2016-08-30 22:27:18 -07:00
virtio_net.c net/virtio-net: Convert to hotplug state machine 2016-09-02 20:05:06 +02:00
vrf.c net: Require exact match for TCP socket lookups if dif is l3mdev 2016-10-17 10:17:05 -04:00
vxlan.c vxlan: avoid using stale vxlan socket. 2016-10-29 20:56:31 -04:00
xen-netfront.c xen-netfront: do not cast grant table reference to signed short 2016-10-31 16:05:32 -04:00