Hi > -----Original Message----- > From: stable <stable-boun...@dpdk.org> On Behalf Of Li, Xiaoyun > Sent: Thursday, July 15, 2021 10:30 > To: Wang, Jie1X <jie1x.w...@intel.com>; dev@dpdk.org > Cc: andrew.rybche...@oktetlabs.ru; sta...@dpdk.org > Subject: Re: [dpdk-stable] [PATCH v2] app/testpmd: fix testpmd doesn't show > RSS hash offload > > Hi > > > -----Original Message----- > > From: Wang, Jie1X <jie1x.w...@intel.com> > > Sent: Wednesday, July 14, 2021 01:04 > > To: dev@dpdk.org > > Cc: Li, Xiaoyun <xiaoyun...@intel.com>; andrew.rybche...@oktetlabs.ru; > > Wang, Jie1X <jie1x.w...@intel.com>; sta...@dpdk.org > > Subject: [PATCH v2] app/testpmd: fix testpmd doesn't show RSS hash > > offload > > > > This patch reapply Rx/Tx offloads configuration for all ports after > > the program configuring the device port. When the program configures > > the ports, the default Rx/Tx offloads are modified in > > dev->data->dev_conf. > > > > So it is need to reapply Rx/Tx offloads configuration after dev_configure.
Forgot to mention. The commit log has many grammar mistakes especially time tense. You can use the following: The driver may change offloads info into dev->data->dev_conf in dev_configure which may cause port->dev_conf and port->rx_conf contain outdated values. This patch updates the offloads info if it changes to fix this issue. > > > > Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings") > > Cc: sta...@dpdk.org > > > > Signed-off-by: Jie Wang <jie1x.w...@intel.com> > > --- > > v2: copy "rx/txmode.offloads", instead of copying the entire struct > > "dev->data- > > >dev_conf.rx/txmode". > > --- > > app/test-pmd/testpmd.c | 19 +++++++++++++++++++ > > 1 file changed, 19 insertions(+) > > > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index > > 1cdd3cdd12..dc9ce5330b 100644 > > --- a/app/test-pmd/testpmd.c > > +++ b/app/test-pmd/testpmd.c > > @@ -2475,6 +2475,11 @@ start_port(portid_t pid) > > } > > > > if (port->need_reconfig > 0) { > > + const struct rte_eth_dev *dev = &rte_eth_devices[pi]; > > + struct rte_eth_conf *dev_conf; > > + int k; > > + > > + dev_conf = &dev->data->dev_conf; > > port->need_reconfig = 0; > > > > if (flow_isolate_all) { > > @@ -2508,6 +2513,20 @@ start_port(portid_t pid) > > port->need_reconfig = 1; > > return -1; > > } > > + /* Apply Rx offloads configuration */ > > + for (k = 0; k < port->dev_info.max_rx_queues; k++) { > > + if (port->rx_conf[k].offloads != > > + dev_conf->rxmode.offloads) > > + port->rx_conf[k].offloads = > > + dev_conf->rxmode.offloads; > > + } > > I was suggesting something like: > if (dev_conf->rxmode.offloads != port->dev_conf->rxmode.offloads) { > port->dev_conf->rxmode.offloads = dev_conf- > >rxmode.offloads; > for (queues) > update offloads for each queue of this port > } > > Not only check and change queue offload. > > > + /* Apply Tx offloads configuration */ > > + for (k = 0; k < port->dev_info.max_tx_queues; k++) { > > + if (port->tx_conf[k].offloads != > > + dev_conf->txmode.offloads) > > + port->tx_conf[k].offloads = > > + dev_conf->txmode.offloads; > > + } > > } > > if (port->need_reconfig_queues > 0) { > > port->need_reconfig_queues = 0; > > -- > > 2.25.1