DPDK patches and discussions
 help / color / mirror / Atom feed
From: fengchengwen <fengchengwen@huawei.com>
To: Vamsi Krishna <vattunuru@marvell.com>, <thomas@monjalon.net>,
	<bruce.richardson@intel.com>, <mb@smartsharesystems.com>
Cc: <dev@dpdk.org>, <kevin.laatz@intel.com>, <jerinj@marvell.com>,
	<conor.walsh@intel.com>, <gmuthukrishn@marvell.com>,
	<vvelumuri@marvell.com>,  <g.singh@nxp.com>,
	<sachin.saxena@oss.nxp.com>, <hemant.agrawal@nxp.com>,
	Amit Prakash Shukla <amitprakashs@marvell.com>
Subject: Re: [RFC v0 1/1] dmadev: provide priority configuration support
Date: Sat, 14 Sep 2024 17:41:36 +0800	[thread overview]
Message-ID: <258c30fd-8100-49b5-9a1b-a1aad893b286@huawei.com> (raw)
In-Reply-To: <20240913121038.315714-1-vattunuru@marvell.com>

On 2024/9/13 20:10, Vamsi Krishna wrote:
> From: Vamsi Attunuru <vattunuru@marvell.com>
> 
> Some DMA controllers offer the ability to configure priority level
> for the hardware command queues, allowing for the prioritization of
> DMA command execution based on queue importance.
> 
> This patch introduces the necessary fields in the dmadev structures to
> retrieve information about the hardware-supported priority levels and to
> enable priority configuration from the application.
> 
> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
> Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
> ---
> 
> Deprecation notice:
> https://patches.dpdk.org/project/dpdk/patch/20240730144612.2132848-1-amitprakashs@marvell.com/
> 
> * Assuming we do not anticipate any advanced scheduling schemes for dmadev queues,
>   this RFC is intended to support a strict prioirty scheme.
> 
>  doc/guides/rel_notes/release_24_11.rst | 15 +++------------
>  lib/dmadev/rte_dmadev.c                | 10 ++++++++++
>  lib/dmadev/rte_dmadev.h                | 11 +++++++++++
>  3 files changed, 24 insertions(+), 12 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/release_24_11.rst b/doc/guides/rel_notes/release_24_11.rst
> index 0ff70d9057..dc711bbf98 100644
> --- a/doc/guides/rel_notes/release_24_11.rst
> +++ b/doc/guides/rel_notes/release_24_11.rst
> @@ -88,18 +88,9 @@ API Changes
>  ABI Changes
>  -----------
>  
> -.. This section should contain ABI changes. Sample format:
> -
> -   * sample: Add a short 1-2 sentence description of the ABI change
> -     which was announced in the previous releases and made in this release.
> -     Start with a scope label like "ethdev:".
> -     Use fixed width quotes for ``function_names`` or ``struct_names``.
> -     Use the past tense.
> -
> -   This section is a comment. Do not overwrite or remove it.
> -   Also, make sure to start the actual text at the margin.
> -   =======================================================
> -
> +* dmadev: Added ``nb_priorities`` field to ``rte_dma_info`` structure and
> +  ``priority`` field to ``rte_dma_conf`` structure to get device supported
> +  priority levels and configure required priority from the application.
>  
>  Known Issues
>  ------------
> diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c
> index 845727210f..053170f55a 100644
> --- a/lib/dmadev/rte_dmadev.c
> +++ b/lib/dmadev/rte_dmadev.c
> @@ -497,6 +497,16 @@ rte_dma_configure(int16_t dev_id, const struct rte_dma_conf *dev_conf)
>  		return -EINVAL;
>  	}
>  
> +	if (dev_info.nb_priorities == 1) {
> +		RTE_DMA_LOG(ERR, "Device %d must support more than 1 priority, or else 0", dev_id);
> +		return -EINVAL;
> +	}
> +
> +	if (dev_info.nb_priorities && (dev_conf->priority >= dev_info.nb_priorities)) {
> +		RTE_DMA_LOG(ERR, "Device %d configure invalid priority", dev_id);
> +		return -EINVAL;
> +	}

Please add trace support

> +
>  	if (*dev->dev_ops->dev_configure == NULL)
>  		return -ENOTSUP;
>  	ret = (*dev->dev_ops->dev_configure)(dev, dev_conf,
> diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h
> index 5474a5281d..d59fcf1b61 100644
> --- a/lib/dmadev/rte_dmadev.h
> +++ b/lib/dmadev/rte_dmadev.h
> @@ -297,6 +297,10 @@ struct rte_dma_info {
>  	int16_t numa_node;
>  	/** Number of virtual DMA channel configured. */
>  	uint16_t nb_vchans;
> +	/** Number of priority levels (must be > 1), if supported by DMA HW channel.
> +	 * 0 otherwise.
> +	 */
> +	uint16_t nb_priorities;

Suggest add priority schedule policy capability, for example:
RTE_DMA_CAPA_PRIORITY_POLICY_SP

>  };
>  
>  /**
> @@ -332,6 +336,13 @@ struct rte_dma_conf {
>  	 * @see RTE_DMA_CAPA_SILENT
>  	 */
>  	bool enable_silent;
> +	/* The prioirty of the DMA HW channel.
> +	 * This value cannot be greater than or equal to the field 'nb_priorities'
> +	 * of struct rte_dma_info which get from rte_dma_info_get().
> +	 * Among the values between '0' and 'nb_priorities - 1', lowest value
> +	 * indicates higher priority and vice-versa.
> +	 */
> +	uint16_t priority;
>  };
>  
>  /**


  reply	other threads:[~2024-09-14  9:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-13 12:10 Vamsi Krishna
2024-09-14  9:41 ` fengchengwen [this message]
2024-09-16 16:34   ` [EXTERNAL] " Vamsi Krishna Attunuru
2024-09-18  9:40 ` [RFC v1 1/1] dmadev: support priority configuration Vamsi Krishna
2024-09-18 10:13   ` [RFC v2 " Vamsi Krishna

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=258c30fd-8100-49b5-9a1b-a1aad893b286@huawei.com \
    --to=fengchengwen@huawei.com \
    --cc=amitprakashs@marvell.com \
    --cc=bruce.richardson@intel.com \
    --cc=conor.walsh@intel.com \
    --cc=dev@dpdk.org \
    --cc=g.singh@nxp.com \
    --cc=gmuthukrishn@marvell.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerinj@marvell.com \
    --cc=kevin.laatz@intel.com \
    --cc=mb@smartsharesystems.com \
    --cc=sachin.saxena@oss.nxp.com \
    --cc=thomas@monjalon.net \
    --cc=vattunuru@marvell.com \
    --cc=vvelumuri@marvell.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).