Message ID | 20230206155912.2032457-1-pawel.chmielewski@intel.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [1/1] ice: add support BIG TCP on IPv6 | expand |
Dear Pawel, Thank you for your patch. Am 06.02.23 um 16:59 schrieb Pawel Chmielewski: > This change enables sending BIG TCP packets on IPv6 in the ice driver using > generic ipv6_hopopt_jumbo_remove helper for stripping HBH header. > > Tested: > netperf -t TCP_RR -H 2001:db8:0:f101::1 -- -r80000,80000 -O MIN_LATENCY,P90_LATENCY,P99_LATENCY,THROUGHPUT > > Results varied from one setup to another, but in every case we got lower > latencies and increased transactions rate. Please give some concrete examples nevertheless. Kind regards, Paul > Signed-off-by: Pawel Chmielewski <pawel.chmielewski@intel.com> > --- > drivers/net/ethernet/intel/ice/ice.h | 2 ++ > drivers/net/ethernet/intel/ice/ice_main.c | 2 ++ > drivers/net/ethernet/intel/ice/ice_txrx.c | 3 +++ > 3 files changed, 7 insertions(+) > > diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h > index 3d26ff4122e0..c774fdd482cd 100644 > --- a/drivers/net/ethernet/intel/ice/ice.h > +++ b/drivers/net/ethernet/intel/ice/ice.h > @@ -122,6 +122,8 @@ > > #define ICE_MAX_MTU (ICE_AQ_SET_MAC_FRAME_SIZE_MAX - ICE_ETH_PKT_HDR_PAD) > > +#define ICE_MAX_TSO_SIZE 131072 > + > #define ICE_UP_TABLE_TRANSLATE(val, i) \ > (((val) << ICE_AQ_VSI_UP_TABLE_UP##i##_S) & \ > ICE_AQ_VSI_UP_TABLE_UP##i##_M) > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c > index 22b8ad058286..8c74a48ad0d3 100644 > --- a/drivers/net/ethernet/intel/ice/ice_main.c > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > @@ -3421,6 +3421,8 @@ static void ice_set_netdev_features(struct net_device *netdev) > * be changed at runtime > */ > netdev->hw_features |= NETIF_F_RXFCS; > + > + netif_set_tso_max_size(netdev, ICE_MAX_TSO_SIZE); > } > > /** > diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c > index ccf09c957a1c..bef927afb766 100644 > --- a/drivers/net/ethernet/intel/ice/ice_txrx.c > +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c > @@ -2297,6 +2297,9 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring) > > ice_trace(xmit_frame_ring, tx_ring, skb); > > + if (unlikely(ipv6_hopopt_jumbo_remove(skb))) > + goto out_drop; > + > count = ice_xmit_desc_count(skb); > if (ice_chk_linearize(skb, count)) { > if (__skb_linearize(skb))
On Mon, Feb 06, 2023 at 05:53:00PM +0100, Paul Menzel wrote: > Dear Pawel, > > > Thank you for your patch. > > Am 06.02.23 um 16:59 schrieb Pawel Chmielewski: > > This change enables sending BIG TCP packets on IPv6 in the ice driver using > > generic ipv6_hopopt_jumbo_remove helper for stripping HBH header. > > > > Tested: > > netperf -t TCP_RR -H 2001:db8:0:f101::1 -- -r80000,80000 -O MIN_LATENCY,P90_LATENCY,P99_LATENCY,THROUGHPUT > > > > Results varied from one setup to another, but in every case we got lower > > latencies and increased transactions rate. > > Please give some concrete examples nevertheless. Of course. I'll send v2 with the results. Thank you. > > > Kind regards, > > Paul > > > > Signed-off-by: Pawel Chmielewski <pawel.chmielewski@intel.com> > > --- > > drivers/net/ethernet/intel/ice/ice.h | 2 ++ > > drivers/net/ethernet/intel/ice/ice_main.c | 2 ++ > > drivers/net/ethernet/intel/ice/ice_txrx.c | 3 +++ > > 3 files changed, 7 insertions(+) > > > > diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h > > index 3d26ff4122e0..c774fdd482cd 100644 > > --- a/drivers/net/ethernet/intel/ice/ice.h > > +++ b/drivers/net/ethernet/intel/ice/ice.h > > @@ -122,6 +122,8 @@ > > #define ICE_MAX_MTU (ICE_AQ_SET_MAC_FRAME_SIZE_MAX - ICE_ETH_PKT_HDR_PAD) > > +#define ICE_MAX_TSO_SIZE 131072 > > + > > #define ICE_UP_TABLE_TRANSLATE(val, i) \ > > (((val) << ICE_AQ_VSI_UP_TABLE_UP##i##_S) & \ > > ICE_AQ_VSI_UP_TABLE_UP##i##_M) > > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c > > index 22b8ad058286..8c74a48ad0d3 100644 > > --- a/drivers/net/ethernet/intel/ice/ice_main.c > > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > > @@ -3421,6 +3421,8 @@ static void ice_set_netdev_features(struct net_device *netdev) > > * be changed at runtime > > */ > > netdev->hw_features |= NETIF_F_RXFCS; > > + > > + netif_set_tso_max_size(netdev, ICE_MAX_TSO_SIZE); > > } > > /** > > diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c > > index ccf09c957a1c..bef927afb766 100644 > > --- a/drivers/net/ethernet/intel/ice/ice_txrx.c > > +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c > > @@ -2297,6 +2297,9 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring) > > ice_trace(xmit_frame_ring, tx_ring, skb); > > + if (unlikely(ipv6_hopopt_jumbo_remove(skb))) > > + goto out_drop; > > + > > count = ice_xmit_desc_count(skb); > > if (ice_chk_linearize(skb, count)) { > > if (__skb_linearize(skb))
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of > Pawel Chmielewski > Sent: Monday, February 6, 2023 9:29 PM > To: netdev@vger.kernel.org > Cc: intel-wired-lan@osuosl.org > Subject: [Intel-wired-lan] [PATCH 1/1] ice: add support BIG TCP on IPv6 > > This change enables sending BIG TCP packets on IPv6 in the ice driver using > generic ipv6_hopopt_jumbo_remove helper for stripping HBH header. > > Tested: > netperf -t TCP_RR -H 2001:db8:0:f101::1 -- -r80000,80000 -O > MIN_LATENCY,P90_LATENCY,P99_LATENCY,THROUGHPUT > > Results varied from one setup to another, but in every case we got lower > latencies and increased transactions rate. > > Signed-off-by: Pawel Chmielewski <pawel.chmielewski@intel.com> > --- > drivers/net/ethernet/intel/ice/ice.h | 2 ++ > drivers/net/ethernet/intel/ice/ice_main.c | 2 ++ > drivers/net/ethernet/intel/ice/ice_txrx.c | 3 +++ > 3 files changed, 7 insertions(+) > Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h index 3d26ff4122e0..c774fdd482cd 100644 --- a/drivers/net/ethernet/intel/ice/ice.h +++ b/drivers/net/ethernet/intel/ice/ice.h @@ -122,6 +122,8 @@ #define ICE_MAX_MTU (ICE_AQ_SET_MAC_FRAME_SIZE_MAX - ICE_ETH_PKT_HDR_PAD) +#define ICE_MAX_TSO_SIZE 131072 + #define ICE_UP_TABLE_TRANSLATE(val, i) \ (((val) << ICE_AQ_VSI_UP_TABLE_UP##i##_S) & \ ICE_AQ_VSI_UP_TABLE_UP##i##_M) diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 22b8ad058286..8c74a48ad0d3 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -3421,6 +3421,8 @@ static void ice_set_netdev_features(struct net_device *netdev) * be changed at runtime */ netdev->hw_features |= NETIF_F_RXFCS; + + netif_set_tso_max_size(netdev, ICE_MAX_TSO_SIZE); } /** diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c index ccf09c957a1c..bef927afb766 100644 --- a/drivers/net/ethernet/intel/ice/ice_txrx.c +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c @@ -2297,6 +2297,9 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring) ice_trace(xmit_frame_ring, tx_ring, skb); + if (unlikely(ipv6_hopopt_jumbo_remove(skb))) + goto out_drop; + count = ice_xmit_desc_count(skb); if (ice_chk_linearize(skb, count)) { if (__skb_linearize(skb))
This change enables sending BIG TCP packets on IPv6 in the ice driver using generic ipv6_hopopt_jumbo_remove helper for stripping HBH header. Tested: netperf -t TCP_RR -H 2001:db8:0:f101::1 -- -r80000,80000 -O MIN_LATENCY,P90_LATENCY,P99_LATENCY,THROUGHPUT Results varied from one setup to another, but in every case we got lower latencies and increased transactions rate. Signed-off-by: Pawel Chmielewski <pawel.chmielewski@intel.com> --- drivers/net/ethernet/intel/ice/ice.h | 2 ++ drivers/net/ethernet/intel/ice/ice_main.c | 2 ++ drivers/net/ethernet/intel/ice/ice_txrx.c | 3 +++ 3 files changed, 7 insertions(+)