> -----Original Message----- > From: Yigit, Ferruh <ferruh.yi...@intel.com> > Sent: Saturday, November 6, 2021 12:24 AM > To: Wang, Jie1X <jie1x.w...@intel.com>; dev@dpdk.org > Cc: Zhang, Yuying <yuying.zh...@intel.com>; Li, Xiaoyun > <xiaoyun...@intel.com>; Yang, SteveX <stevex.y...@intel.com>; Guo, Junfeng > <junfeng....@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com> > Subject: Re: [dpdk-dev] [PATCH v2] app/testpmd: fix set Rx offloads RSS hash > off > > On 11/4/2021 9:29 AM, Jie Wang wrote: > > When we set Rx offloads RSS hash off in cmdline, then we start port, > > if dev->data->dev_conf.rxmode.mq_mode RSS enable(multiple queues > > mode), it will load RSS hash in driver and sync to port. > > > > After setting Rx offloads RSS hash off, this patch removes > > RTE_ETH_MQ_RX_RSS in port->dev_conf.rxmode.mq_mode to fix this issue. > > > > And after setting Rx offloads RSS hash on, this patch also adds > > RTE_ETH_MQ_RX_RSS in port->dev_conf.rxmode.mq_mode. > > > > Fixes: c73a9071877a ("app/testpmd: add commands to test new offload > > API") > > > > Signed-off-by: Jie Wang <jie1x.w...@intel.com> > > --- > > app/test-pmd/cmdline.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index > > d08a1c9777..f8277e4443 100644 > > --- a/app/test-pmd/cmdline.c > > +++ b/app/test-pmd/cmdline.c > > @@ -16176,10 +16176,16 @@ cmd_config_per_port_rx_offload_parsed(void > *parsed_result, > > port->dev_conf.rxmode.offloads |= single_offload; > > for (q = 0; q < nb_rx_queues; q++) > > port->rx_conf[q].offloads |= single_offload; > > + > > + if (single_offload & 0x80000) > > I don't why you used immediate value, but you mean > 'RTE_ETH_RX_OFFLOAD_RSS_HASH' here. >
I will update it in next version. > > + port->dev_conf.rxmode.mq_mode |= > RTE_ETH_MQ_RX_RSS; > > Why enabling RSS when 'RSS HASH' offload is enabled? In this case if RSS is > disabled I think it should fail. > > Can you please describe again what problem you are solving? > If 'RSS HASH' offload is disabled in the first, the mq_mode RSS is disabled. Then 'RSS HASH' offload is enabled in the second, so that we should enable RSS here. > > } else { > > port->dev_conf.rxmode.offloads &= ~single_offload; > > for (q = 0; q < nb_rx_queues; q++) > > port->rx_conf[q].offloads &= ~single_offload; > > + > > + if (single_offload & 0x80000) > > + port->dev_conf.rxmode.mq_mode &= > ~RTE_ETH_MQ_RX_RSS; When 'RSS HASH' offload is disabled, that mq_mode RSS should be disabled too. So that it will not enable 'RSS HASH' offload in driver. > > } > > > > cmd_reconfig_device_queue(port_id, 1, 1); > >