2020-05-07 14:23:44

by Kai-Heng Feng

[permalink] [raw]
Subject: [PATCH] e1000e: Disable TSO for buffer overrun workaround

Commit b10effb92e27 ("e1000e: fix buffer overrun while the I219 is
processing DMA transactions") imposes roughly 30% performance penalty.

The commit log states that "Disabling TSO eliminates performance loss
for TCP traffic without a noticeable impact on CPU performance", so
let's disable TSO by default to regain the loss.

Fixes: b10effb92e27 ("e1000e: fix buffer overrun while the I219 is processing DMA transactions")
BugLink: https://bugs.launchpad.net/bugs/1802691
Signed-off-by: Kai-Heng Feng <[email protected]>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 177c6da80c57..9b5509149578 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -5294,6 +5294,10 @@ 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
--
2.17.1


2020-05-21 07:23:15

by Brown, Aaron F

[permalink] [raw]
Subject: RE: [PATCH] e1000e: Disable TSO for buffer overrun workaround

> From: [email protected] <[email protected]> On
> Behalf Of Kai-Heng Feng
> Sent: Thursday, May 7, 2020 7:21 AM
> To: Kirsher, Jeffrey T <[email protected]>
> Cc: Kai-Heng Feng <[email protected]>; David S. Miller
> <[email protected]>; Neftin, Sasha <[email protected]>; Dima
> Ruinskiy <[email protected]>; Avargil, Raanan
> <[email protected]>; moderated list:INTEL ETHERNET DRIVERS <intel-
> [email protected]>; open list:NETWORKING DRIVERS
> <[email protected]>; open list <[email protected]>
> Subject: [PATCH] e1000e: Disable TSO for buffer overrun workaround
>
> Commit b10effb92e27 ("e1000e: fix buffer overrun while the I219 is
> processing DMA transactions") imposes roughly 30% performance penalty.
>
> The commit log states that "Disabling TSO eliminates performance loss
> for TCP traffic without a noticeable impact on CPU performance", so
> let's disable TSO by default to regain the loss.
>
> Fixes: b10effb92e27 ("e1000e: fix buffer overrun while the I219 is processing
> DMA transactions")
> BugLink: https://bugs.launchpad.net/bugs/1802691
> Signed-off-by: Kai-Heng Feng <[email protected]>
> ---
> drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++++
> 1 file changed, 4 insertions(+)
Tested-by: Aaron Brown <[email protected]>