[Intel-wired-lan] [PATCH net v1] e1000e: Fix TSO not being disabled on i219-LM card
Paul Menzel
pmenzel at molgen.mpg.de
Tue Dec 20 10:58:57 UTC 2022
Dear Mateusz,
Thank you for the patch. In the commit message summary, you could write:
> Disable TSO on i219-LM card to increase speed
Am 20.12.22 um 10:47 schrieb Mateusz Palczewski:
> While using i219-LM card currently it was only possible to achieve
Please mention, that it’s a regression in Linux 5.8-rc1.
> about 60% of maximum speed. This was caused by TSO not being disabled
> even thought it should be on this specific card. Fix that by moving the
s/thought/though/
Please reference the datasheet section, where that is documented.
> part of the code responsible for this outside of adapter->flags & FLAG_TSO_FORCE
> check.
How did you test the speed exactly?
On a Dell Precision Tower 3620/0MWYPT, BIOS 2.22.0 07/13/2022, with
$ lspci -nn -s 00:1f.6
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet
Connection (2) I219-LM [8086:15b7] (rev 31)
I get more than 60 % bandwidth with iperf3.
```
$ iperf3 -c iperf3.molgen.mpg.de
Connecting to host iperf3.molgen.mpg.de, port 5201
[ 5] local 141.14.18.119 port 56092 connected to 141.14.27.109 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 102 MBytes 859 Mbits/sec 0 1.07 MBytes
[ 5] 1.00-2.00 sec 98.7 MBytes 828 Mbits/sec 0 1.13 MBytes
[ 5] 2.00-3.00 sec 99.8 MBytes 837 Mbits/sec 0 1.13 MBytes
[ 5] 3.00-4.00 sec 99.9 MBytes 838 Mbits/sec 0 1.13 MBytes
[ 5] 4.00-5.00 sec 98.7 MBytes 828 Mbits/sec 0 1.13 MBytes
[ 5] 5.00-6.00 sec 99.7 MBytes 836 Mbits/sec 0 1.13 MBytes
[ 5] 6.00-7.00 sec 99.9 MBytes 838 Mbits/sec 0 1.13 MBytes
[ 5] 7.00-8.00 sec 98.5 MBytes 826 Mbits/sec 0 1.13 MBytes
[ 5] 8.00-9.00 sec 100 MBytes 838 Mbits/sec 0 1.13 MBytes
[ 5] 9.00-10.00 sec 98.8 MBytes 829 Mbits/sec 0 1.13 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 996 MBytes 836 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 994 MBytes 833 Mbits/sec
receiver
iperf Done.
```
> Fixes: f29801030ac6 ("e1000e: Disable TSO for buffer overrun workaround")
> Signed-off-by: Mateusz Palczewski <mateusz.palczewski at intel.com>
> ---
> drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> index 04acd1a992fa..24f4ccb82dc4 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -5307,10 +5307,6 @@ static void e1000_watchdog_task(struct work_struct *work)
> /* oops */
> break;
> }
> - if (hw->mac.type == e1000_pch_spt) {
> - netdev->features &= ~NETIF_F_TSO;
> - netdev->features &= ~NETIF_F_TSO6;
> - }
> }
>
> /* enable transmits in the hardware, need to do this
> @@ -5326,6 +5322,12 @@ static void e1000_watchdog_task(struct work_struct *work)
> if (phy->ops.cfg_on_link_up)
> phy->ops.cfg_on_link_up(hw);
>
> + /* Disable TSO for i219, to avoid transfer speed issue */
Please remove the comma, and please elaborate also in the comment.
> + if (hw->mac.type == e1000_pch_spt) {
> + netdev->features &= ~NETIF_F_TSO;
> + netdev->features &= ~NETIF_F_TSO6;
> + }
> +
> netif_wake_queue(netdev);
> netif_carrier_on(netdev);
Kind regards,
Paul
More information about the Intel-wired-lan
mailing list