Hi, Qiming

> -----Original Message-----
> From: Yang, Qiming <qiming.y...@intel.com>
> Sent: Friday, July 24, 2020 1:08 PM
> To: Wang, ShougangX <shougangx.w...@intel.com>; dev@dpdk.org
> Cc: Xing, Beilei <beilei.x...@intel.com>; Guo, Jia <jia....@intel.com>; Wang,
> ShougangX <shougangx.w...@intel.com>; sta...@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH v4] net/i40e: fix incorrect hash look up table
> 
> Hi, Shougang
> This version looks better, only two small questions.
> Once somebody gave comments to your patch, you should reply the
> comments and CC when you send patch next version.
> You don't include me in this version, don't forget this next time.
Got it, I will keep in mind.

> Qiming
> > -----Original Message-----
> > From: dev <dev-boun...@dpdk.org> On Behalf Of Shougang Wang
> > Sent: Friday, July 24, 2020 10:47
> > To: dev@dpdk.org
> > Cc: Xing, Beilei <beilei.x...@intel.com>; Guo, Jia
> > <jia....@intel.com>; Wang, ShougangX <shougangx.w...@intel.com>;
> > sta...@dpdk.org
> > Subject: [dpdk-dev] [PATCH v4] net/i40e: fix incorrect hash look up
> > table
> >
> > 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.
> >
> > Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS
> > flow")
> > Cc: sta...@dpdk.org
> >
> > Signed-off-by: Shougang Wang <shougangx.w...@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;
> 
> No tab?
Actually, this line is on the same line as the code above, but it looks like 
two lines here.
I will adjust the position of this definition to follow the "Christmas tree" in 
next version.

> 
> >     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)  {
> > -   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);
> 
> If only have one function call in this function, we can delete it, and just 
> use
> i40e_pf_config_rss(pf) instead of i40e_pf_config_mq_rx.
Got it. Thanks for your review.

Thanks.
Shougang

Reply via email to