[dpdk-dev] [PATCH 1/2] lib/eventdev: add usage hints to port configure API

Jerin Jacob jerinjacobk at gmail.com
Thu Sep 16 06:59:06 CEST 2021


On Thu, Sep 9, 2021 at 6:24 PM Harry van Haaren
<harry.van.haaren at intel.com> wrote:
>
> This commit introduces 3 flags to the port configuration flags.
> These flags allow the application to indicate what type of work
> is expected to be performed by an eventdev port.
>
> The three new flags are
> - RTE_EVENT_PORT_CFG_HINT_PRODUCER (mostly RTE_EVENT_OP_NEW events)
> - RTE_EVENT_PORT_CFG_HINT_CONSUMER (mostly RTE_EVENT_OP_RELEASE events)
> - RTE_EVENT_PORT_CFG_HINT_WORKER   (mostly RTE_EVENT_OP_FORWARD events)
>
> These flags are only hints, and the PMDs must operate under the
> assumption that any port can enqueue an event with any type of op.

This change looks good to me.

+ @Mattias Rönnblom  @Erik Gabriel Carrillo  @Gujjar, Abhinandan S
@Pavan Nikhilesh  @Hemant Agrawal @Nipun Gupta  @Liang Ma @McDaniel,
Timothy
# Please change subject to evendev: ....
# Please submit the driver changes as well and updated performance
gain with the scheme.
# Please find below one comment



>
> Signed-off-by: Harry van Haaren <harry.van.haaren at intel.com>
> ---
>  lib/eventdev/rte_eventdev.h | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>
> diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
> index a9c496fb62..159b580938 100644
> --- a/lib/eventdev/rte_eventdev.h
> +++ b/lib/eventdev/rte_eventdev.h
> @@ -709,6 +709,29 @@ rte_event_queue_attr_get(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id,
>   *
>   *  @see rte_event_port_setup(), rte_event_port_link()
>   */
> +#define RTE_EVENT_PORT_CFG_HINT_PRODUCER       (1ULL << 2)
> +/**< Hint that this event port will primarily enqueue events to the system.
> + * A PMD can optimize its internal workings by assuming that this port is
> + * primarily going to enqueue NEW events. Note that this flag is only a hint.

IMO, We can explicitly add the following line in each comment.

PMDs must operate under the assumption that any port can enqueue an
event with any type of op.

> + *
> + *  @see rte_event_port_setup()
> + */
> +#define RTE_EVENT_PORT_CFG_HINT_CONSUMER       (1ULL << 3)
> +/**< Hint that this event port will primarily dequeue events from the system.
> + * A PMD can optimize its internal workings by assuming that this port is
> + * primarily going to consume events, and not enqueue FORWARD or RELEASE events.
> + * Note that this flag is only a hint.
> + *
> + *  @see rte_event_port_setup()
> + */
> +#define RTE_EVENT_PORT_CFG_HINT_WORKER         (1ULL << 4)
> +/**< Hint that this event port will primarily events to the system.
> + * A PMD can optimize its internal workings by assuming that this port is
> + * primarily going to FORWARD events, and not enqueue NEW or RELEASE events
> + * often. Note that this flag is only a hint.
> + *
> + *  @see rte_event_port_setup()
> + */
>
>  /** Event port configuration structure */
>  struct rte_event_port_conf {
> --
> 2.30.2
>


More information about the dev mailing list