DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: Wenzhuo Lu <wenzhuo.lu@intel.com>, <dev@dpdk.org>
Cc: Ferruh Yigit <ferruh.yigit@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>
Subject: Re: [dpdk-dev] [PATCH v2] ethdev: fix device info getting
Date: Fri, 13 Jul 2018 11:02:56 +0300	[thread overview]
Message-ID: <25492396-a8ea-9fb8-553b-87d64a84feda@solarflare.com> (raw)
In-Reply-To: <1531449770-107772-1-git-send-email-wenzhuo.lu@intel.com>

Hi, Wenzhuo,

I'm sorry, but I have more even harder questions than the previous one.
This questions are rather generic and mainly to ethdev maintainers.

On 13.07.2018 05:42, Wenzhuo Lu wrote:
> The device information cannot be gotten correctly before
> the configuration is set. Because on some NICs the
> information has dependence on the configuration.

Thinking about it I have the following question. Is it valid behaviour
of the dev_info if it changes after configuration?
I always thought that the primary goal of the dev_info is to
provide information to app about device capabilities to allow app
configure device and queues correctly. Now we see the case when
dev_info changes on configure. May be it is acceptable, but it is
really suspicious. If we accept it, it should be documented.
May be dev_info should be split into parts: part which is persistent and
part which may depend on device configuration.

> Fixes: 3be82f5cc5e3 ("ethdev: support PMD-tuned Tx/Rx parameters")
> Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
> ---
>   lib/librte_ethdev/rte_ethdev.c | 21 +++++++++++----------
>   1 file changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index 3d556a8..6f606c1 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -1022,6 +1022,17 @@ struct rte_eth_dev *
>   	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_infos_get, -ENOTSUP);
>   	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_configure, -ENOTSUP);
>   
> +	if (dev->data->dev_started) {
> +		RTE_ETHDEV_LOG(ERR,
> +			"Port %u must be stopped to allow configuration\n",
> +			port_id);
> +		return -EBUSY;
> +	}
> +
> +	/* Copy the dev_conf parameter into the dev structure,
> +	 * then get the info.
> +	 */
> +	memcpy(&dev->data->dev_conf, &local_conf, sizeof(dev->data->dev_conf));

It is not a problem of the patch, but I'd like to highlight it to Ferruh 
and
Thomas. What we have in the case of below failures? State is really
inconsistent in the case of reconfigure. We have applied new dev_conf,
but we still have previous Rx/Tx queues which were setup before.

>   	rte_eth_dev_info_get(port_id, &dev_info);
>   
>   	/* If number of queues specified by application for both Rx and Tx is
> @@ -1053,16 +1064,6 @@ struct rte_eth_dev *
>   		return -EINVAL;
>   	}
>   
> -	if (dev->data->dev_started) {
> -		RTE_ETHDEV_LOG(ERR,
> -			"Port %u must be stopped to allow configuration\n",
> -			port_id);
> -		return -EBUSY;
> -	}
> -
> -	/* Copy the dev_conf parameter into the dev structure */
> -	memcpy(&dev->data->dev_conf, &local_conf, sizeof(dev->data->dev_conf));
> -
>   	/*
>   	 * Check that the numbers of RX and TX queues are not greater
>   	 * than the maximum number of RX and TX queues supported by the

  reply	other threads:[~2018-07-13  8:03 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-12  5:27 [dpdk-dev] [PATCH] " Wenzhuo Lu
2018-07-12  8:06 ` Andrew Rybchenko
2018-07-13  1:56   ` Lu, Wenzhuo
2018-07-13  2:42 ` [dpdk-dev] [PATCH v2] " Wenzhuo Lu
2018-07-13  8:02   ` Andrew Rybchenko [this message]
2018-07-16  1:08     ` Lu, Wenzhuo
2018-07-16  1:58       ` Lu, Wenzhuo
2018-08-01 15:36         ` Thomas Monjalon
2018-08-13  2:50           ` Lu, Wenzhuo
2018-08-13  8:38             ` Andrew Rybchenko
2018-08-14  0:57               ` Lu, Wenzhuo
2018-08-22 16:55                 ` Ferruh Yigit
2018-08-23  8:58                   ` Andrew Rybchenko
2018-10-22 12:01                     ` Ferruh Yigit
2018-10-22 12:13                       ` Thomas Monjalon
2018-10-23  1:25                         ` Lu, Wenzhuo
2018-10-23  7:28                           ` Thomas Monjalon
2018-11-06  0:56                             ` Lu, Wenzhuo
2018-11-06  7:40                         ` Andrew Rybchenko
2018-11-08  2:09 ` [dpdk-dev] [PATCH v3 1/2] " Wenzhuo Lu
2018-11-08  2:09   ` [dpdk-dev] [PATCH v3 2/2] ethdev: device configuration enhancement Wenzhuo Lu
2018-11-08  6:25     ` Andrew Rybchenko
2018-11-09 21:10       ` Ferruh Yigit
2018-11-13  0:46         ` Lu, Wenzhuo
2018-11-13  9:40           ` Ferruh Yigit
2018-11-14  1:28             ` Lu, Wenzhuo
2018-11-13 11:12   ` [dpdk-dev] [PATCH v4 1/3] ethdev: fix invalid device configuration after failure Ferruh Yigit
2018-11-13 11:12     ` [dpdk-dev] [PATCH v4 2/3] ethdev: fix device info getting Ferruh Yigit
2018-11-13 11:19       ` Andrew Rybchenko
2018-11-13 11:12     ` [dpdk-dev] [PATCH v4 3/3] ethdev: eliminate interim variable Ferruh Yigit
2018-11-13 11:22       ` Andrew Rybchenko
2018-11-13 11:51         ` Ferruh Yigit
2018-11-13 11:56           ` Andrew Rybchenko
2018-11-13 11:19     ` [dpdk-dev] [PATCH v4 1/3] ethdev: fix invalid device configuration after failure Andrew Rybchenko
2018-11-13 17:49       ` Ferruh Yigit

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=25492396-a8ea-9fb8-553b-87d64a84feda@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=thomas@monjalon.net \
    --cc=wenzhuo.lu@intel.com \
    /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).