linux/drivers/net
Hiroaki SHIMODA f5e37c549d e1000e: Change wthresh to 1 to avoid possible Tx stalls
commit 8edc0e624d upstream.

This patch originated from Hiroaki SHIMODA but has been modified
by Intel with some minor cleanups and additional commit log text.

Denys Fedoryshchenko and others reported Tx stalls on e1000e with
BQL enabled.  Issue was root caused to hardware delays. They were
introduced because some of the e1000e hardware with transmit
writeback bursting enabled, waits until the driver does an
explict flush OR there are WTHRESH descriptors to write back.

Sometimes the delays in question were on the order of seconds,
causing visible lag for ssh sessions and unacceptable tx
completion latency, especially for BQL enabled kernels.

To avoid possible Tx stalls, change WTHRESH back to 1.

The current plan is to investigate a method for re-enabling
WTHRESH while not harming BQL, but those patches will be later
for net-next if they work.

please enqueue for stable since v3.3 as this bug was introduced in
commit 3f0cfa3bc1
Author: Tom Herbert <therbert@google.com>
Date:   Mon Nov 28 16:33:16 2011 +0000

    e1000e: Support for byte queue limits

    Changes to e1000e to use byte queue limits.

Reported-by: Denys Fedoryshchenko <denys@visp.net.lb>
Tested-by: Denys Fedoryshchenko <denys@visp.net.lb>
Signed-off-by: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com>
CC: eric.dumazet@gmail.com
CC: therbert@google.com
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-21 09:28:01 -07:00
..
appletalk Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
arcnet arcnet: rimi: Fix device name in debug output 2012-04-17 22:22:43 -04:00
bonding bonding: Manage /proc/net/bonding/ entries from the netdev events 2012-07-19 08:58:58 -07:00
caif caif: fix NULL pointer check 2012-08-09 08:31:50 -07:00
can can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock() 2012-10-07 08:32:28 -07:00
cris Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dsa
ethernet e1000e: Change wthresh to 1 to avoid possible Tx stalls 2012-10-21 09:28:01 -07:00
fddi
hamradio Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hippi Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hyperv net/hyperv: Adding cancellation to ensure rndis filter is closed 2012-04-21 15:38:10 -04:00
irda ARM: sa11x0: fix build errors from DMA engine API updates 2012-03-30 11:46:20 +01:00
phy icplus: fix interrupt for IC+ 101A/G and 1001LF 2012-04-19 15:34:18 -04:00
plip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ppp pppoe: drop PPPOX_ZOMBIEs in pppoe_release 2012-10-13 05:38:44 +09:00
slip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
team
tokenring Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
usb sierra_net: Endianess bug fix. 2012-10-13 05:38:42 +09:00
vmxnet3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-03-05 21:16:26 -05:00
wan ixp4xx_hss: fix build failure due to missing linux/module.h inclusion 2012-10-13 05:38:42 +09:00
wimax Merge branch 'akpm' (Andrew's patch-bomb) 2012-04-05 15:30:34 -07:00
wireless ath9k: use ieee80211_free_txskb 2012-10-21 09:27:59 -07:00
xen-netback
dummy.c dummy: fix rcu_sched self-detected stalls 2012-07-16 09:03:47 -07:00
eql.c eql: dont rely on HZ=100 2012-03-27 22:45:26 -04:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
macvlan.c Revert "net: maintain namespace isolation between vlan and real device" 2012-05-10 23:03:34 -04:00
macvtap.c macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built successfully 2012-10-02 10:30:34 -07:00
Makefile
mdio.c ethtool, mdio, mii: Specify MDIO information fields in struct ethtool_cmd 2012-03-01 16:41:26 -05:00
mii.c ethtool, mdio, mii: Specify MDIO information fields in struct ethtool_cmd 2012-03-01 16:41:26 -05:00
netconsole.c netconsole: remove a redundant netconsole_target_put() 2012-10-02 10:29:51 -07:00
rionet.c rapidio/rionet: fix multicast packet transmit logic 2012-10-13 05:38:39 +09:00
sb1000.c
Space.c
sungem_phy.c
tun.c tun: don't zeroize sock->file on detach 2012-08-15 08:10:33 -07:00
veth.c
virtio_net.c virtio_net: invoke softirqs after __napi_schedule 2012-05-17 12:16:38 +03:00
xen-netfront.c xen/netfront: teardown the device before unregistering it. 2012-07-16 09:03:49 -07:00