]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit3f5f7ff258ee726c2dee0df1be37a3188656ec83
tree9b30938460fd42441b0d9c6bb53f5dd679c0d0a7
parent901f90459464d2601d5db4339a11727c5ca329f0
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