tsnep: Throttle interrupts
authorGerhard Engleder <gerhard@engleder-embedded.com>
Wed, 30 Nov 2022 19:37:07 +0000 (20:37 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Dec 2022 10:47:49 +0000 (10:47 +0000)
commitd3dfe8d6c04061a3eadfc299ba8009b38f4bc25b
tree4b65cbe25da50111fd0ce743ecae599bffd3abaf
parent4f661ccfcac70f3838f7e5ca53ac51c86e1acbb1
tsnep: Throttle interrupts

Without interrupt throttling, iperf server mode generates a CPU load of
100% (A53 1.2GHz). Also the throughput suffers with less than 900Mbit/s
on a 1Gbit/s link. The reason is a high interrupt load with interrupts
every ~20us.

Reduce interrupt load by throttling of interrupts. Interrupt delay
default is 64us. For iperf server mode the CPU load is significantly
reduced to ~20% and the throughput reaches the maximum of 941MBit/s.
Interrupts are generated every ~140us.

RX and TX coalesce can be configured with ethtool. RX coalesce has
priority over TX coalesce if the same interrupt is used.

Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/engleder/tsnep.h
drivers/net/ethernet/engleder/tsnep_ethtool.c
drivers/net/ethernet/engleder/tsnep_hw.h
drivers/net/ethernet/engleder/tsnep_main.c