linux_dsm_epyc7002/drivers/net/ethernet/marvell
Ezequiel Garcia 3ae8f4e0b9 net: mv643xx_eth: Implement software TSO
Now that the TSO helper API has been introduced, this commit makes use
of it to add support for software TSO in this driver.

This feature allows to improve outbound throughput performance significantly.
Running iperf tests shows a 30% improvement, tested on a Kirkwood Openblocks
A6 board.

$ ethtool -K eth0 tso off
$ iperf -c 192.168.0.45 -t 3
------------------------------------------------------------
Client connecting to 192.168.0.45, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.159 port 46389 connected with 192.168.0.45 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 3.0 sec   217 MBytes   607 Mbits/sec

$ ethtool -K eth0 tso on
$ iperf -c 192.168.0.45 -t 3
------------------------------------------------------------
Client connecting to 192.168.0.45, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.159 port 46390 connected with 192.168.0.45 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 3.0 sec   336 MBytes   938 Mbits/sec

This commit is just an example of the usage of the TSO API, it works fine
but needs some more work. In particular, the descriptor unmapping path must
avoid unmapping the TSO headers.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-05-22 14:57:17 -04:00
..
Kconfig net: ethernet: update dependency and help text of mvneta 2014-02-18 18:09:02 -05:00
Makefile mv643xx_eth: convert to use the Marvell Orion MDIO driver 2013-03-22 10:25:15 -04:00
mv643xx_eth.c net: mv643xx_eth: Implement software TSO 2014-05-22 14:57:17 -04:00
mvmdio.c net: mvmdio: Check for a valid interrupt instead of an error 2014-05-02 16:18:54 -04:00
mvneta.c net: mvneta: Implement software TSO 2014-05-22 14:57:16 -04:00
pxa168_eth.c net: get rid of SET_ETHTOOL_OPS 2014-05-13 17:43:20 -04:00
skge.c skge: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:05 -07:00
skge.h
sky2.c net: get rid of SET_ETHTOOL_OPS 2014-05-13 17:43:20 -04:00
sky2.h sky2: Receive Overflows not counted 2013-03-29 14:53:19 -04:00