DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Mattias Rönnblom" <hofors@lysator.liu.se>
To: Bruce Richardson <bruce.richardson@intel.com>, dev@dpdk.org
Cc: Jerin Jacob <jerinj@marvell.com>
Subject: Re: [PATCH 24.03 1/8] eventdev: add capability flags for supported sched types
Date: Tue, 21 Nov 2023 10:30:02 +0100	[thread overview]
Message-ID: <b2b85725-4886-4173-9e23-36f114314b3b@lysator.liu.se> (raw)
In-Reply-To: <20231120172606.505579-2-bruce.richardson@intel.com>

On 2023-11-20 18:25, Bruce Richardson wrote:
> Not all eventdev's support all scheduling types, for example, some may
> only support atomic scheduling or others only support ordered
> scheduling. There is currently no clear indication for each driver what
> sched types it supports, so add capability flags to be indicated on
> return from rte_event_dev_info_get() API.
> 
> Similarly add the possible scheduling types to the capabilities table in
> the docs.
> 

Should we allow an event device to advertise 
RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES, but not all of these?

With current wording of RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES prevents that, 
but you should be able to allow for this without breaking backward 
compatibility by tweaking the text from

"Event device is capable of enqueuing events of any type to any queue."

"Event device is capable of enqueuing events of any type advertised as 
supported (e.g., by RTE_EVENT_DEV_CAP_ATOMIC)."

An event device that doesn't support ordered, but does support "all" 
types seems reasonable to me, while an event device that does support 
ordered on a per-event basis, but doesn't for queue-level configuration 
does not.

If RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES is left unchanged, the user may ask 
herself what "any" means (any supported in the API, or any supported by 
the actual event device).

> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>   doc/guides/eventdevs/features/default.ini |  3 +++
>   lib/eventdev/rte_eventdev.h               | 21 +++++++++++++++++++++
>   2 files changed, 24 insertions(+)
> 
> diff --git a/doc/guides/eventdevs/features/default.ini b/doc/guides/eventdevs/features/default.ini
> index e980ae134a..1cc4303fe5 100644
> --- a/doc/guides/eventdevs/features/default.ini
> +++ b/doc/guides/eventdevs/features/default.ini
> @@ -6,6 +6,9 @@
>   ; the features table in the documentation.
>   ;
>   [Scheduling Features]
> +atomic_scheduling          =
> +ordered_scheduling         =
> +parallel_scheduling        =
>   queue_qos                  =
>   event_qos                  =
>   distributed_sched          =
> diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
> index ec9b02455d..9109de157e 100644
> --- a/lib/eventdev/rte_eventdev.h
> +++ b/lib/eventdev/rte_eventdev.h
> @@ -326,6 +326,27 @@ struct rte_event;
>    * than one.
>    */
> 
> +#define RTE_EVENT_DEV_CAP_ATOMIC  (1ULL << 13)
> +/**< Event device is capable of atomic scheduling.
> + * When this flag is set, the application can configure queues with scheduling type
> + * atomic on this event device.
> + * @see RTE_SCHED_TYPE_ATOMIC
> + */
> +
> +#define RTE_EVENT_DEV_CAP_ORDERED  (1ULL << 13)
> +/**< Event device is capable of ordered scheduling.
> + * When this flag is set, the application can configure queues with scheduling type
> + * ordered on this event device.
> + * @see RTE_SCHED_TYPE_ORDERED
> + */
> +
> +#define RTE_EVENT_DEV_CAP_PARALLEL  (1ULL << 13)
> +/**< Event device is capable of parallel scheduling.
> + * When this flag is set, the application can configure queues with scheduling type
> + * parallel on this event device.
> + * @see RTE_SCHED_TYPE_PARALLEL
> + */
> +
>   /* Event device priority levels */
>   #define RTE_EVENT_DEV_PRIORITY_HIGHEST   0
>   /**< Highest priority expressed across eventdev subsystem
> --
> 2.39.2
> 

  parent reply	other threads:[~2023-11-21  9:30 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-20 17:25 [PATCH 24.03 0/8] document scheduling types for eventdev drivers Bruce Richardson
2023-11-20 17:25 ` [PATCH 24.03 1/8] eventdev: add capability flags for supported sched types Bruce Richardson
2023-11-20 17:48   ` Jerin Jacob
2023-11-20 17:52     ` Bruce Richardson
2023-11-21  9:30   ` Mattias Rönnblom [this message]
2023-11-21  9:46     ` Bruce Richardson
2023-11-21 11:12     ` Bruce Richardson
2023-11-21 17:08       ` Pathak, Pravin
2023-11-20 17:26 ` [PATCH 24.03 2/8] event/cnxk: add schedule-type capability flags Bruce Richardson
2023-11-20 17:26 ` [PATCH 24.03 3/8] event/dlb2: " Bruce Richardson
2023-11-20 22:45   ` Sevincer, Abdullah
2023-11-20 17:26 ` [PATCH 24.03 4/8] event/dpaa*: " Bruce Richardson
2023-11-21 10:51   ` Hemant Agrawal
2023-11-20 17:26 ` [PATCH 24.03 5/8] event/dsw: " Bruce Richardson
2023-11-21  9:30   ` Mattias Rönnblom
2023-11-21  9:32     ` Mattias Rönnblom
2023-11-21  9:44       ` Bruce Richardson
2023-11-21  9:47         ` Bruce Richardson
2023-11-20 17:26 ` [PATCH 24.03 6/8] event/octeontx: " Bruce Richardson
2023-11-20 17:26 ` [PATCH 24.03 7/8] event/opdl: " Bruce Richardson
2023-11-20 17:26 ` [PATCH 24.03 8/8] event/sw: " Bruce Richardson
2023-11-21 11:54 ` [PATCH 24.03 v2 0/9] document scheduling types for eventdev drivers Bruce Richardson
2023-11-21 11:54   ` [PATCH 24.03 v2 1/9] eventdev: add capability flags for supported sched types Bruce Richardson
2023-11-23  3:59     ` Jerin Jacob
2023-11-21 11:54   ` [PATCH 24.03 v2 2/9] eventdev: increase flexibility of all-types flag Bruce Richardson
2023-11-23  4:07     ` Jerin Jacob
2023-12-12 11:28       ` Bruce Richardson
2023-12-12 12:47         ` Jerin Jacob
2023-11-21 11:54   ` [PATCH 24.03 v2 3/9] event/cnxk: add schedule-type capability flags Bruce Richardson
2023-11-21 11:54   ` [PATCH 24.03 v2 4/9] event/dlb2: " Bruce Richardson
2023-11-21 11:54   ` [PATCH 24.03 v2 5/9] event/dpaa*: " Bruce Richardson
2023-11-21 11:54   ` [PATCH 24.03 v2 6/9] event/dsw: " Bruce Richardson
2023-11-21 11:54   ` [PATCH 24.03 v2 7/9] event/octeontx: " Bruce Richardson
2023-11-21 11:54   ` [PATCH 24.03 v2 8/9] event/opdl: " Bruce Richardson
2023-11-23  4:10     ` Jerin Jacob
2023-11-23  9:19       ` Bruce Richardson
2023-11-23  9:38         ` Jerin Jacob
2023-11-21 11:54   ` [PATCH 24.03 v2 9/9] event/sw: " Bruce Richardson
2023-12-12 11:32 ` [PATCH v3 0/9] document scheduling types for eventdev drivers Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 1/9] eventdev: add capability flags for supported sched types Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 2/9] eventdev: clarify all-types flag documentation Bruce Richardson
2023-12-13 12:50     ` Jerin Jacob
2023-12-13 13:20     ` Mattias Rönnblom
2023-12-12 11:32   ` [PATCH v3 3/9] event/cnxk: add schedule-type capability flags Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 4/9] event/dlb2: " Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 5/9] event/dpaa*: " Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 6/9] event/dsw: " Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 7/9] event/octeontx: " Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 8/9] event/opdl: " Bruce Richardson
2023-12-12 11:32   ` [PATCH v3 9/9] event/sw: " Bruce Richardson

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=b2b85725-4886-4173-9e23-36f114314b3b@lysator.liu.se \
    --to=hofors@lysator.liu.se \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@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).