All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Li, Xiaoyun" <xiaoyun.li@intel.com>
To: "Wang, Jie1X" <jie1x.wang@intel.com>,
	"andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: "stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix testpmd doesn't show RSS hash offload
Date: Tue, 13 Jul 2021 03:30:18 +0000	[thread overview]
Message-ID: <DM4PR11MB55345449363FB76CD5D56A4199149@DM4PR11MB5534.namprd11.prod.outlook.com> (raw)
In-Reply-To: <DM8PR11MB5639B19DACFB1B4F4E70ACA4D1149@DM8PR11MB5639.namprd11.prod.outlook.com>



> -----Original Message-----
> From: Wang, Jie1X <jie1x.wang@intel.com>
> Sent: Tuesday, July 13, 2021 10:34
> To: Li, Xiaoyun <xiaoyun.li@intel.com>; andrew.rybchenko@oktetlabs.ru;
> dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] app/testpmd: fix testpmd doesn't show RSS
> hash offload
> 
> Hi all,
> I have tested this patch, it still worked on.
> 
> When we changed the port offloads, the port->dev_conf would change in the
> same time. And in the function " rte_eth_dev_configure ", dev->data->dev_conf
> copied the port->dev_conf parameter into the dev structure.

OK. A reminder: Please answer these under every part you want to explain not the very start. It looks messy in mail-list.
But still, this patch has issues.
Please see inlines.
> 
> -----Original Message-----
> From: Li, Xiaoyun <xiaoyun.li@intel.com>
> Sent: Monday, July 12, 2021 11:12 AM
> To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>; Wang, Jie1X
> <jie1x.wang@intel.com>; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] app/testpmd: fix testpmd doesn't show RSS
> hash offload
> 
> 
> 
> > -----Original Message-----
> > From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> > Sent: Friday, July 9, 2021 17:27
> > To: Wang, Jie1X <jie1x.wang@intel.com>; dev@dpdk.org
> > Cc: Li, Xiaoyun <xiaoyun.li@intel.com>; stable@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix testpmd doesn't show
> > RSS hash offload
> >
> > On 7/9/21 6:57 PM, Jie Wang wrote:
> > > 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.
> > >
> > > So it is need to reapply Rx/Tx offloads configuration before testpmd
> > > showing offloads.
> > >
> > > Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Jie Wang <jie1x.wang@intel.com>
> > > ---
> > >  app/test-pmd/testpmd.c | 15 +++++++++++++++
> > >  1 file changed, 15 insertions(+)
> > >
> > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> > > 1cdd3cdd12..7089ae216d 100644
> > > --- a/app/test-pmd/testpmd.c
> > > +++ b/app/test-pmd/testpmd.c
> > > @@ -2475,6 +2475,9 @@ start_port(portid_t pid)
> > >  		}
> > >
> > >  		if (port->need_reconfig > 0) {
> > > +			const struct rte_eth_dev *dev = &rte_eth_devices[pi];
> > > +			int k;
> > > +
> > >  			port->need_reconfig = 0;
> > >
> > >  			if (flow_isolate_all) {
> > > @@ -2508,6 +2511,18 @@ start_port(portid_t pid)
> > >  				port->need_reconfig = 1;
> > >  				return -1;
> > >  			}
> > > +
> > > +			/* Apply TxRx configuration for all ports */
> > > +			port->dev_conf.txmode = dev->data-
> > >dev_conf.txmode;
> > > +			port->dev_conf.rxmode = dev->data-
> > >dev_conf.rxmode;

Direct assignment for a big struct is dangerous. Next time, if you're going to assign a struct, please use memcpy.
And actually, your issue will only happen for one time for rss_hash because it seems only rss_hash will be added in driver.
Doing these copies every time seems very redundant.
You'd better check if port->rxmode.offloads==dev->data->dev_conf.rx_mode.offloads, if it's not equal, do the new assignment, including queue offload. Otherwise, don't.
Same with txmode.offloads.

> > > +			/* Apply Rx offloads configuration */
> > > +			for (k = 0; k < port->dev_info.max_rx_queues; k++)
> > > +				port->rx_conf[k].offloads =
> > > +					port->dev_conf.rxmode.offloads;
> > > +			/* Apply Tx offloads configuration */
> > > +			for (k = 0; k < port->dev_info.max_tx_queues; k++)
> > > +				port->tx_conf[k].offloads =
> > > +					port->dev_conf.txmode.offloads;
> >
> > Does testpmd really require these copies? May be the right fix is to
> > get rid of these copies at all and show actual information from data-
> >dev_conf ?
> >
> The "show" command cmd_rx_offload_get_configuration_parsed() actually
> should only touch port->dev_conf.
> And It doesn't only show dev_conf, but also per queue rx_conf. It's impossible to
> show per queue rx conf info from data->dev_conf.
> 
> The copy is already done in init_config actually. But by then, dev->data-
> >dev_conf doesn't include RSS_HASH.
> RSS_HASH is added by driver in dev_configure. That's why this patch wants to
> copy again after dev_configure I guess.
> 
> But this patch is INCORRECT anyway.
> Because any cmd that changes port offload will change port->dev_conf and
> port->rx/tx_conf NOT dev->data->dev_conf.
> So after this patch, if a user " port config 0 rx_offload xxx on", all of the new
> config will disappear.

  parent reply	other threads:[~2021-07-13  3:30 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-09 15:57 [dpdk-dev] [PATCH] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-07-09  9:27 ` Andrew Rybchenko
2021-07-12  3:12   ` Li, Xiaoyun
     [not found]     ` <DM8PR11MB5639B19DACFB1B4F4E70ACA4D1149@DM8PR11MB5639.namprd11.prod.outlook.com>
2021-07-13  3:30       ` Li, Xiaoyun [this message]
2021-07-16  9:09     ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2021-07-13 17:04 ` [dpdk-dev] [PATCH v2] " Jie Wang
2021-07-15  2:29   ` Li, Xiaoyun
2021-07-15  2:40     ` Li, Xiaoyun
2021-07-15 11:33   ` [dpdk-dev] [PATCH v3] " Jie Wang
2021-07-15 11:57     ` [dpdk-dev] [PATCH v4] " Jie Wang
2021-07-15  4:53       ` Li, Xiaoyun
2021-07-16  8:30         ` Li, Xiaoyun
2021-07-16  8:52           ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
     [not found]             ` <DM8PR11MB5639C757A790F65CBFB647C2D1E19@DM8PR11MB5639.namprd11.prod.outlook.com>
2021-07-19 16:18               ` Ferruh Yigit
2021-07-22 11:03                 ` Andrew Rybchenko
2021-08-09  8:53                   ` Ferruh Yigit
2021-08-17 17:38       ` [dpdk-dev] [PATCH v5] " Jie Wang
2021-08-24 17:10         ` [dpdk-dev] [PATCH v6 0/2] testpmd shows incorrect rx_offload configuration Jie Wang
2021-08-24 17:10           ` [dpdk-dev] [PATCH v6 1/2] ethdev: add an API to get device configuration info Jie Wang
2021-08-24 17:10           ` [dpdk-dev] [PATCH v6 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-08-26  7:09           ` [dpdk-dev] [PATCH v7 0/2] testpmd shows incorrect rx_offload configuration Jie Wang
2021-08-26  7:09             ` [dpdk-dev] [PATCH v7 1/2] ethdev: add an API to get device configuration info Jie Wang
2021-08-26  7:09             ` [dpdk-dev] [PATCH v7 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-08-27  7:36               ` Li, Xiaoyun
2021-08-27  8:17             ` [dpdk-dev] [PATCH v8 0/2] testpmd shows incorrect rx_offload configuration Jie Wang
2021-08-27  8:17               ` [dpdk-dev] [PATCH v8 1/2] ethdev: add an API to get device configuration info Jie Wang
2021-09-08 16:46                 ` Ferruh Yigit
2021-08-27  8:17               ` [dpdk-dev] [PATCH v8 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-08-30  5:57                 ` Li, Xiaoyun
2021-09-08 16:50                 ` Ferruh Yigit
2021-09-09  3:31                   ` Li, Xiaoyun
2021-09-17 10:20                     ` Ferruh Yigit
2021-09-18  2:18                       ` Li, Xiaoyun
2021-09-20  9:45                         ` Ferruh Yigit
2021-09-20  9:48                 ` Ferruh Yigit
2021-09-22  2:52                   ` Wang, Jie1X
2021-09-26  9:20               ` [dpdk-dev] [PATCH v9 0/3] testpmd shows incorrect rx_offload configuration Jie Wang
2021-09-26  9:20                 ` [dpdk-dev] [PATCH v9 1/3] ethdev: add an API to get device configuration info Jie Wang
2021-09-27  6:19                   ` Thomas Monjalon
2021-09-27  7:21                     ` Wang, Jie1X
2021-09-27  7:56                       ` Thomas Monjalon
2021-10-04 11:20                         ` Ferruh Yigit
2021-10-04 11:25                           ` Thomas Monjalon
2021-10-04 11:22                   ` Ferruh Yigit
2021-10-04 11:26                     ` Thomas Monjalon
2021-10-04 11:35                       ` Ferruh Yigit
2021-09-26  9:20                 ` [dpdk-dev] [PATCH v9 2/3] doc: update release notes for new API Jie Wang
2021-10-04 11:22                   ` Ferruh Yigit
2021-10-04 11:26                     ` Thomas Monjalon
2021-09-26  9:20                 ` [dpdk-dev] [PATCH v9 3/3] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-10-08  3:41                 ` [dpdk-dev] [PATCH v10 0/2] testpmd shows incorrect rx_offload configuration Jie Wang
2021-10-08  3:41                   ` [dpdk-dev] [PATCH v10 1/2] ethdev: add an API to get device configuration info Jie Wang
2021-10-08 12:10                     ` Ferruh Yigit
2021-10-08  3:41                   ` [dpdk-dev] [PATCH v10 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-10-08 12:12                     ` Ferruh Yigit
2021-10-11 18:01                   ` [dpdk-dev] [PATCH v11 0/2] testpmd shows incorrect rx_offload configuration Jie Wang
2021-10-11 18:01                     ` [dpdk-dev] [PATCH v11 1/2] ethdev: add an API to get device configuration Jie Wang
2021-10-11 10:08                       ` Somnath Kotur
2021-10-11 12:21                       ` Andrew Rybchenko
2021-10-11 18:01                     ` [dpdk-dev] [PATCH v11 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-10-12  2:54                     ` [dpdk-dev] [PATCH v12 0/2] testpmd shows incorrect rx_offload configuration Jie Wang
2021-10-12  2:54                       ` [dpdk-dev] [PATCH v12 1/2] ethdev: add an API to get device configuration Jie Wang
2021-10-12  5:50                         ` Andrew Rybchenko
2021-10-12  2:54                       ` [dpdk-dev] [PATCH v12 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-10-12 14:37                         ` Ferruh Yigit
2021-10-13  2:42                           ` Wang, Jie1X
2021-10-13  8:50                             ` Ferruh Yigit
2021-10-13 10:14                               ` Ferruh Yigit
2021-10-12 14:35                       ` [dpdk-dev] [PATCH v12 0/2] testpmd shows incorrect rx_offload configuration Ferruh Yigit
2021-10-14 10:31                       ` [dpdk-dev] [PATCH v13 " Jie Wang
2021-10-14 10:31                         ` [dpdk-dev] [PATCH v13 1/2] ethdev: add an API to get device configuration Jie Wang
2021-10-14 10:31                         ` [dpdk-dev] [PATCH v13 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang
2021-10-14 12:56                         ` [dpdk-dev] [PATCH v13 0/2] testpmd shows incorrect rx_offload configuration Ferruh Yigit
2021-10-15 10:43                           ` Ferruh Yigit
2021-10-15 11:29                           ` Ferruh Yigit
2021-08-24 18:19         ` [dpdk-dev] [PATCH v6 " Jie Wang
2021-08-24 18:19           ` [dpdk-dev] [PATCH v6 1/2] ethdev: add an API to get device configuration info Jie Wang
2021-08-25 20:07             ` Ferruh Yigit
2021-08-26  6:00               ` Ajit Khaparde
2021-08-24 18:19           ` [dpdk-dev] [PATCH v6 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload Jie Wang

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=DM4PR11MB55345449363FB76CD5D56A4199149@DM4PR11MB5534.namprd11.prod.outlook.com \
    --to=xiaoyun.li@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=jie1x.wang@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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.