DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Li, Xiaoyun" <xiaoyun.li@intel.com>
To: "Yigit, Ferruh" <ferruh.yigit@intel.com>,
	"Wang, Jie1X" <jie1x.wang@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: "andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>,
	"thomas@monjalon.net" <thomas@monjalon.net>
Subject: Re: [dpdk-dev] [PATCH v8 2/2] app/testpmd: fix testpmd doesn't show RSS hash offload
Date: Thu, 9 Sep 2021 03:31:49 +0000	[thread overview]
Message-ID: <DM4PR11MB5534E55672374A74293D6BE199D59@DM4PR11MB5534.namprd11.prod.outlook.com> (raw)
In-Reply-To: <ded27ac7-70e1-cfda-543e-ccb7bdc07e9a@intel.com>

Hi

> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Thursday, September 9, 2021 00:51
> To: Wang, Jie1X <jie1x.wang@intel.com>; dev@dpdk.org; Li, Xiaoyun
> <xiaoyun.li@intel.com>
> Cc: andrew.rybchenko@oktetlabs.ru; thomas@monjalon.net
> Subject: Re: [PATCH v8 2/2] app/testpmd: fix testpmd doesn't show RSS hash
> offload
> 
> On 8/27/2021 9:17 AM, Jie Wang wrote:
> > 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")
> >
> > Signed-off-by: Jie Wang <jie1x.wang@intel.com>
> > ---
> >  app/test-pmd/testpmd.c | 34 ++++++++++++++++++++++++++++++++++
> >  app/test-pmd/testpmd.h |  2 ++
> >  app/test-pmd/util.c    | 15 +++++++++++++++
> >  3 files changed, 51 insertions(+)
> >
> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> > 6cbe9ba3c8..bd67291160 100644
> > --- a/app/test-pmd/testpmd.c
> > +++ b/app/test-pmd/testpmd.c
> > @@ -2461,6 +2461,9 @@ start_port(portid_t pid)
> >  		}
> >
> >  		if (port->need_reconfig > 0) {
> > +			struct rte_eth_conf dev_conf_info;
> > +			int k;
> > +
> >  			port->need_reconfig = 0;
> >
> >  			if (flow_isolate_all) {
> > @@ -2498,6 +2501,37 @@ start_port(portid_t pid)
> >  				port->need_reconfig = 1;
> >  				return -1;
> >  			}
> > +			/* get rte_eth_conf info */
> > +			if (0 !=
> > +				eth_dev_conf_info_get_print_err(pi,
> > +							&dev_conf_info)) {
> > +				fprintf(stderr,
> > +					"port %d can not get device
> configuration info\n",
> > +					pi);
> > +				return -1;
> > +			}
> > +			/* Apply Rx offloads configuration */
> > +			if (dev_conf_info.rxmode.offloads !=
> > +				port->dev_conf.rxmode.offloads) {
> > +				port->dev_conf.rxmode.offloads =
> > +					dev_conf_info.rxmode.offloads;
> > +				for (k = 0;
> > +				     k < port->dev_info.max_rx_queues;
> > +				     k++)
> > +					port->rx_conf[k].offloads =
> > +
> 	dev_conf_info.rxmode.offloads;
> > +			}
> > +			/* Apply Tx offloads configuration */
> > +			if (dev_conf_info.txmode.offloads !=
> > +				port->dev_conf.txmode.offloads) {
> > +				port->dev_conf.txmode.offloads =
> > +					dev_conf_info.txmode.offloads;
> > +				for (k = 0;
> > +				     k < port->dev_info.max_tx_queues;
> > +				     k++)
> > +					port->tx_conf[k].offloads =
> > +
> 	dev_conf_info.txmode.offloads;
> > +			}
> >  		}
> 
> Above implementation gets the configuration from device and applies it to the
> testpmd configuration.
> 
> Instead, what about a long level target to get rid of testpmd specific copy of the
> configuration and rely and the config provided by devices. @Xiaoyun, what do
> you think, does this make sense?

You mean remove port->dev_conf and rx/tx_conf completely in the future? Or keep it in initial stage?

Now, port->dev_conf will take global tx/rx_mode, fdir_conf and change some based on dev_info capabilities. And then use dev_configure to apply them for device.
After this, actually, dev->data->dev_conf contains all device configuration.

So It seems it's OK to remove port->dev_conf completely. Just testpmd needs to be refactored a lot and regression test in case of issues.
But from long term view, it's good to keep one source and avoid copy.

As for rx/tx_conf, it takes device default tx/rx_conf in dev_info and some settings in testpmd parameters also offloads from dev_conf.
So keep port->rx/tx_conf? But then it still needs copy from dev_conf since this may change.

> 
> So instead of above code, update where RSS hash offload information printed to
> use device retrieved config instead of testpmd config, will it work?

It's OK for device offload configurations.
But queue offloads are a bit tricky since dev->data->dev_conf doesn't include queue conf.
And it's not fair to use device offload configurations for queue offloads since user can use cmdline to config queue offload and that info can only be saved in port->rx/tx_conf and configure the device in setup_queue.

  reply	other threads:[~2021-09-09  3:31 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-09 15:57 [dpdk-dev] [PATCH] " 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
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 [this message]
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=DM4PR11MB5534E55672374A74293D6BE199D59@DM4PR11MB5534.namprd11.prod.outlook.com \
    --to=xiaoyun.li@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=jie1x.wang@intel.com \
    --cc=thomas@monjalon.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).