[dpdk-dev] [PATCH v4] net/i40e: fix incorrect hash look up table

Jeff Guo jia.guo at intel.com
Fri Jul 24 05:57:52 CEST 2020


hi, shougang

On 7/24/2020 10:47 AM, Shougang Wang wrote:
> The hash look up table (LUT) is managed by global register but it is not
> initialized when RSS is disabled. Once user wants to enable RSS during
> runtime, the LUT will not be initialized.
> This patch fixes the issue by initializing the LUT whether RSS enabled
> or not.


"whatever" but not "whether"?


>
> Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS flow")
> Cc: stable at dpdk.org
>
> Signed-off-by: Shougang Wang <shougangx.wang at intel.com>
> ---
> v4:
> -Updated code.
> ---
>   drivers/net/i40e/i40e_ethdev.c | 15 ++++-----------
>   1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 05d5f2861..0a3f5e3c1 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -8985,6 +8985,7 @@ static int
>   i40e_pf_config_rss(struct i40e_pf *pf)
>   {
>   	struct i40e_hw *hw = I40E_PF_TO_HW(pf);
> +	enum rte_eth_rx_mq_mode mq_mode = pf->dev_data->dev_conf.rxmode.mq_mode;
>   	struct rte_eth_rss_conf rss_conf;
>   	uint32_t i, lut = 0;
>   	uint16_t j, num;
> @@ -9022,7 +9023,8 @@ i40e_pf_config_rss(struct i40e_pf *pf)
>   	}
>   
>   	rss_conf = pf->dev_data->dev_conf.rx_adv_conf.rss_conf;
> -	if ((rss_conf.rss_hf & pf->adapter->flow_types_mask) == 0) {
> +	if ((rss_conf.rss_hf & pf->adapter->flow_types_mask) == 0 ||
> +	    !(mq_mode & ETH_MQ_RX_RSS_FLAG)) {
>   		i40e_pf_disable_rss(pf);
>   		return 0;
>   	}
> @@ -9198,16 +9200,7 @@ i40e_tunnel_filter_handle(struct rte_eth_dev *dev,
>   static int
>   i40e_pf_config_mq_rx(struct i40e_pf *pf)


This function is still need or could it be replace by i40e_pf_config_rss?


>   {
> -	int ret = 0;
> -	enum rte_eth_rx_mq_mode mq_mode = pf->dev_data->dev_conf.rxmode.mq_mode;
> -
> -	/* RSS setup */
> -	if (mq_mode & ETH_MQ_RX_RSS_FLAG)
> -		ret = i40e_pf_config_rss(pf);
> -	else
> -		i40e_pf_disable_rss(pf);
> -
> -	return ret;
> +	return i40e_pf_config_rss(pf);
>   }
>   
>   /* Get the symmetric hash enable configurations per port */


More information about the dev mailing list