net: stmmac: Use hrtimer for TX coalescing
authorVincent Whitchurch <vincent.whitchurch@axis.com>
Fri, 20 Nov 2020 15:02:08 +0000 (16:02 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 24 Nov 2020 16:47:44 +0000 (08:47 -0800)
commitd5a05e69ac6e4c431c380ced2b534c91f7bc3280
tree9b30938460fd42441b0d9c6bb53f5dd679c0d0a7
parent5112cf59d76d799b1c4d66af92417e2673fb1d5b
net: stmmac: Use hrtimer for TX coalescing

This driver uses a normal timer for TX coalescing, which means that the
with the default tx-usecs of 1000 microseconds the cleanups actually
happen 10 ms or more later with HZ=100.  This leads to very low
througput with TCP when bridged to a slow link such as a 4G modem.  Fix
this by using an hrtimer instead.

On my ARM platform with HZ=100 and the default TX coalescing settings
(tx-frames 25 tx-usecs 1000), with "tc qdisc add dev eth0 root netem
delay 60ms 40ms rate 50Mbit" run on the server, netperf's TCP_STREAM
improves from ~5.5 Mbps to ~100 Mbps.

Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
Link: https://lore.kernel.org/r/20201120150208.6838-1-vincent.whitchurch@axis.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac.h
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c