DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
To: Stephen Hemminger <stephen@networkplumber.org>, dev@dpdk.org
Cc: Thomas Monjalon <thomas@monjalon.net>,
	Ferruh Yigit <ferruh.yigit@amd.com>
Subject: Re: [PATCH v2 1/5] ethdev: check that device supports deferred start
Date: Sun, 15 Dec 2024 11:56:55 +0300	[thread overview]
Message-ID: <9c5a3e1e-a1b7-4f3f-96f5-674031de6e15@oktetlabs.ru> (raw)
In-Reply-To: <20241214180843.6662-2-stephen@networkplumber.org>

On 12/14/24 21:07, Stephen Hemminger wrote:
> The check for supporting deferred start should be handled at
> the ethdev level for all devices.

It is a good idea to check it on ethdev level.

Strictly speaking presence of queue start/stop callback does not mean
support for deferred start right now. It is possible to use stop/start
without deferred start feature.

However, such check is much better than nothing since deferred start
definitely requires queue start callback.

It would be good to clarify it in the documentation.
doc/guides/nics/features.rst does not mention deferred start at all.
In fact, I don't mind to couple deferred start to queue start/stop
features.

One nit below.

Anyway:
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>   lib/ethdev/rte_ethdev.c | 10 ++++++++++
>   1 file changed, 10 insertions(+)
> 
> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
> index 6413c54e3b..7768058f6d 100644
> --- a/lib/ethdev/rte_ethdev.c
> +++ b/lib/ethdev/rte_ethdev.c
> @@ -2264,6 +2264,11 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
>   	if (rx_conf != NULL)
>   		rx_offloads |= rx_conf->offloads;
>   
> +	/* Deferred start requires that device supports queue start */
> +	if (rx_conf != NULL && rx_conf->rx_deferred_start &&
> +	    *dev->dev_ops->rx_queue_start == NULL)
> +		return -ENOTSUP;

Wouldn't it be useful to add some kind of logging to simplify
debugging in this case.

> +
>   	/* Ensure that we have one and only one source of Rx buffers */
>   	if ((mp != NULL) +
>   	    (rx_conf != NULL && rx_conf->rx_nseg > 0) +
> @@ -2575,6 +2580,11 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id,
>   		return -EINVAL;
>   	}
>   
> +	/* Deferred start requires that device supports queue start */
> +	if (tx_conf != NULL && tx_conf->tx_deferred_start &&
> +	    *dev->dev_ops->tx_queue_start == NULL)
> +		return -ENOTSUP;
> +
>   	ret = rte_eth_dev_info_get(port_id, &dev_info);
>   	if (ret != 0)
>   		return ret;


  reply	other threads:[~2024-12-15  8:57 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger
2024-12-13 21:48 ` [PATCH 1/5] ethdev: check that device supports deferred start Stephen Hemminger
2024-12-13 21:48 ` [PATCH 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger
2024-12-13 21:48 ` [PATCH 3/5] net/dpaa2: remove unneeded " Stephen Hemminger
2024-12-13 21:48 ` [PATCH 4/5] net/enetfec: " Stephen Hemminger
2024-12-13 21:48 ` [PATCH 5/5] net/virtio: " Stephen Hemminger
2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger
2024-12-14 18:07   ` [PATCH v2 1/5] ethdev: check that device supports deferred start Stephen Hemminger
2024-12-15  8:56     ` Andrew Rybchenko [this message]
2024-12-16 18:58       ` Stephen Hemminger
2024-12-17  6:07         ` Andrew Rybchenko
2024-12-14 18:07   ` [PATCH v2 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger
2024-12-14 18:07   ` [PATCH v2 3/5] net/dpaa2: remove unneeded " Stephen Hemminger
2024-12-14 18:07   ` [PATCH v2 4/5] net/enetfec: " Stephen Hemminger
2024-12-14 18:07   ` [PATCH v2 5/5] net/virtio: " Stephen Hemminger
2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger
2024-12-16 19:11   ` [PATCH v3 1/6] ethdev: check that device supports deferred start Stephen Hemminger
2024-12-16 19:11   ` [PATCH v3 2/6] doc: fix feature flags for queue start/stop Stephen Hemminger
2024-12-16 19:11   ` [PATCH v3 3/6] net/dpaa: remove unnecessary deferred start check Stephen Hemminger
2024-12-16 19:11   ` [PATCH v3 4/6] net/dpaa2: remove unneeded " Stephen Hemminger
2024-12-16 19:11   ` [PATCH v3 5/6] net/enetfec: " Stephen Hemminger
2024-12-16 19:11   ` [PATCH v3 6/6] net/virtio: " Stephen Hemminger

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=9c5a3e1e-a1b7-4f3f-96f5-674031de6e15@oktetlabs.ru \
    --to=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=stephen@networkplumber.org \
    --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).