DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Yu, DapengX" <dapengx.yu@intel.com>
To: "Guo, Jia" <jia.guo@intel.com>,
	"Wang, Haiyue" <haiyue.wang@intel.com>,
	"Yang, Qiming" <qiming.yang@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>, "stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: disable NFS filtering
Date: Fri, 22 Jan 2021 07:06:58 +0000
Message-ID: <170777480f71434fb2c7a1ee8421dc31@intel.com> (raw)
In-Reply-To: <fbb98675393f42568d3bc1307537d763@intel.com>

Hi Jia,

The change in commit:b826efba6de4 does follow the x540 datasheet, but is not consistent with the latest ixgbe kernel driver(v5.10.2). 

In ixgbe_main.c(kernel driver), there are the following code, without any precondition. I think the author think NFS packet shall not be filtered in any condition.
/**
 * ixgbe_configure_rx - Configure 8259x Receive Unit after Reset
 * @adapter: board private structure
 *
 * Configure the Rx unit of the MAC after a reset.
 **/
static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
{
	...
	/* RSC Setup */
	rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
	rfctl &= ~IXGBE_RFCTL_RSC_DIS;
	if (!(adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED))
		rfctl |= IXGBE_RFCTL_RSC_DIS;

	/* disable NFS filtering */
	rfctl |= (IXGBE_RFCTL_NFSW_DIS | IXGBE_RFCTL_NFSR_DIS);
	IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
	...
}
I cannot find the complete modification history of these code lines in kernel driver. But these line is introduced in ixgbe 4.5.4(2016-12-13), and never changed later. 

I bring this change because NFS packet will be filtered without it, the result is that all NFS packets flow into queue0, before RSS can work on it.

Thanks for your suggestions on this patch, I will submit patch v2 to include them.

-----Original Message-----
From: Guo, Jia 
Sent: Friday, January 22, 2021 1:34 PM
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: [PATCH] net/ixgbe: disable NFS filtering

Hi, dapeng

> -----Original Message-----
> From: dapengx.yu@intel.com <dapengx.yu@intel.com>
> Sent: Wednesday, January 20, 2021 5:27 PM
> 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] net/ixgbe: disable NFS filtering
> 
> From: Dapeng Yu <dapengx.yu@intel.com>
> 
> Disable NFS header filtering whether NFS packets coalescing are 
> required or not.
> 
> This behavior is aligned with ixgbe kernel driver.
> 
> Fixes: b826efba6de4 ("net/ixgbe: align register setting when RSC is 
> disabled")

I suggest to add one more fix line which related with the patch, since below patch is what you most change the behaviors.
the Fixes: 8eecb3295aed ("ixgbe: add LRO support ")

And I saw prior fixed patch are also said it would flow the datasheet, could you explain why you bring this change? Is it anything change about that in kernel driver prior with currently?

> 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..3fb55c675 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);

I thinks the "()" is no need, right?

>  	IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
> 
>  	/* If LRO hasn't been requested - we are done here. */
> --
> 2.27.0


  reply	other threads:[~2021-01-22  7:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-20  9:27 dapengx.yu
2021-01-22  5:33 ` Guo, Jia
2021-01-22  7:06   ` Yu, DapengX [this message]
2021-01-25  3:10 ` [dpdk-dev] [PATCH v2] " dapengx.yu
2021-01-26  2:11   ` Guo, Jia
2021-01-26  2:19     ` Yu, DapengX
2021-01-26  3:03   ` [dpdk-dev] [PATCH v3] " dapengx.yu
2021-01-26  3:36     ` Guo, Jia
2021-01-26  4:36       ` Zhang, Qi Z

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=170777480f71434fb2c7a1ee8421dc31@intel.com \
    --to=dapengx.yu@intel.com \
    --cc=dev@dpdk.org \
    --cc=haiyue.wang@intel.com \
    --cc=jia.guo@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git