[v3] net/ixgbe: disable NFS filtering

Message ID 20210126030308.517216-1-dapengx.yu@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v3] net/ixgbe: disable NFS filtering |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Functional success Functional Testing PASS
ci/Intel-compilation fail Compilation issues
ci/iol-testing warning Testing issues

Commit Message

Yu, DapengX Jan. 26, 2021, 3:03 a.m. UTC
  From: Dapeng Yu <dapengx.yu@intel.com>

Disable NFS header filtering whether NFS packets coalescing are
required or not, in order to make RSS can work on NFS packets.

The code without the patch does follow datasheet, but not consistent
with the ixgbe kernel driver. It causes NFS packets to be filtered
and make them flow into queue 0, before RSS can work on them.

Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is disabled")
Fixes: 8eecb3295aed ("ixgbe: add LRO support")
Cc: stable@dpdk.org

Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
  

Comments

Guo, Jia Jan. 26, 2021, 3:36 a.m. UTC | #1
Acked-by: Jeff Guo <jia.guo@intel.com>

> -----Original Message-----
> From: dapengx.yu@intel.com <dapengx.yu@intel.com>
> Sent: Tuesday, January 26, 2021 11:03 AM
> To: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>;
> Yang, Qiming <qiming.yang@intel.com>
> Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org
> Subject: [PATCH v3] net/ixgbe: disable NFS filtering
> 
> From: Dapeng Yu <dapengx.yu@intel.com>
> 
> Disable NFS header filtering whether NFS packets coalescing are required or
> not, in order to make RSS can work on NFS packets.
> 
> The code without the patch does follow datasheet, but not consistent with
> the ixgbe kernel driver. It causes NFS packets to be filtered and make them
> flow into queue 0, before RSS can work on them.
> 
> Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is disabled")
> Fixes: 8eecb3295aed ("ixgbe: add LRO support")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> index cc8f70e6d..2efd054f7 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -4923,15 +4923,11 @@ ixgbe_set_rsc(struct rte_eth_dev *dev)
>  	/* RFCTL configuration  */
>  	rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
>  	if ((rsc_capable) && (rx_conf->offloads &
> DEV_RX_OFFLOAD_TCP_LRO))
> -		/*
> -		 * Since NFS packets coalescing is not supported - clear
> -		 * RFCTL.NFSW_DIS and RFCTL.NFSR_DIS when RSC is
> -		 * enabled.
> -		 */
> -		rfctl &= ~(IXGBE_RFCTL_RSC_DIS | IXGBE_RFCTL_NFSW_DIS
> |
> -			   IXGBE_RFCTL_NFSR_DIS);
> +		rfctl &= ~IXGBE_RFCTL_RSC_DIS;
>  	else
>  		rfctl |= IXGBE_RFCTL_RSC_DIS;
> +	/* disable NFS filtering */
> +	rfctl |= IXGBE_RFCTL_NFSW_DIS | IXGBE_RFCTL_NFSR_DIS;
>  	IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
> 
>  	/* If LRO hasn't been requested - we are done here. */
> --
> 2.27.0
  
Qi Zhang Jan. 26, 2021, 4:36 a.m. UTC | #2
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Guo, Jia
> Sent: Tuesday, January 26, 2021 11:36 AM
> To: Yu, DapengX <dapengx.yu@intel.com>; Wang, Haiyue
> <haiyue.wang@intel.com>; Yang, Qiming <qiming.yang@intel.com>
> Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3] net/ixgbe: disable NFS filtering
> 
> Acked-by: Jeff Guo <jia.guo@intel.com>
> 
> > -----Original Message-----
> > From: dapengx.yu@intel.com <dapengx.yu@intel.com>
> > Sent: Tuesday, January 26, 2021 11:03 AM
> > To: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue
> > <haiyue.wang@intel.com>; Yang, Qiming <qiming.yang@intel.com>
> > Cc: dev@dpdk.org; Yu, DapengX <dapengx.yu@intel.com>; stable@dpdk.org
> > Subject: [PATCH v3] net/ixgbe: disable NFS filtering
> >
> > From: Dapeng Yu <dapengx.yu@intel.com>
> >
> > Disable NFS header filtering whether NFS packets coalescing are
> > required or not, in order to make RSS can work on NFS packets.
> >
> > The code without the patch does follow datasheet, but not consistent
> > with the ixgbe kernel driver. It causes NFS packets to be filtered and
> > make them flow into queue 0, before RSS can work on them.
> >
> > Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is
> > disabled")
> > Fixes: 8eecb3295aed ("ixgbe: add LRO support")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index cc8f70e6d..2efd054f7 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -4923,15 +4923,11 @@  ixgbe_set_rsc(struct rte_eth_dev *dev)
 	/* RFCTL configuration  */
 	rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
 	if ((rsc_capable) && (rx_conf->offloads & DEV_RX_OFFLOAD_TCP_LRO))
-		/*
-		 * Since NFS packets coalescing is not supported - clear
-		 * RFCTL.NFSW_DIS and RFCTL.NFSR_DIS when RSC is
-		 * enabled.
-		 */
-		rfctl &= ~(IXGBE_RFCTL_RSC_DIS | IXGBE_RFCTL_NFSW_DIS |
-			   IXGBE_RFCTL_NFSR_DIS);
+		rfctl &= ~IXGBE_RFCTL_RSC_DIS;
 	else
 		rfctl |= IXGBE_RFCTL_RSC_DIS;
+	/* disable NFS filtering */
+	rfctl |= IXGBE_RFCTL_NFSW_DIS | IXGBE_RFCTL_NFSR_DIS;
 	IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
 
 	/* If LRO hasn't been requested - we are done here. */