> -----Original Message-----
> From: Shijith Thotton <sthot...@marvell.com>
> Sent: Tuesday, March 29, 2022 2:11 PM
> To: dev@dpdk.org; jer...@marvell.com
> Cc: Shijith Thotton <sthot...@marvell.com>; pbhagavat...@marvell.com
> Subject: [PATCH 5/6] event/cnxk: support to set runtime queue attributes

<snip>

> +int
> +cnxk_sso_queue_attribute_get(struct rte_eventdev *event_dev, uint8_t
> queue_id,
> +                          uint32_t attr_id, uint32_t *attr_value)
> +{
> +     struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
> +
> +     *attr_value = attr_id == RTE_EVENT_QUEUE_ATTR_WEIGHT ?
> +                           dev->mlt_prio[queue_id].weight :
> +                           dev->mlt_prio[queue_id].affinity;

This is future-bug prone, as adding a new Eventdev attr will return .affinity 
silently,
instead of the attr that is being requested.

Prefer a switch(attr_id), and explicitly handle each attr_id, with a default 
case
to return -1, showing the PMD refusing to handle the attr requested to the 
caller.

On reviewing the below, the set() below does this perfectly... except the 
return?

> +
> +     return 0;
> +}
> +
> +int
> +cnxk_sso_queue_attribute_set(struct rte_eventdev *event_dev, uint8_t
> queue_id,
> +                          uint32_t attr_id, uint32_t attr_value)
> +{
> +     struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
> +     uint8_t priority, weight, affinity;
> +     struct rte_event_queue_conf *conf;
> +
> +     conf = &event_dev->data->queues_cfg[queue_id];
> +
> +     switch (attr_id) {
> +     case RTE_EVENT_QUEUE_ATTR_PRIORITY:
> +             conf->priority = attr_value;
> +             break;
> +     case RTE_EVENT_QUEUE_ATTR_WEIGHT:
> +             dev->mlt_prio[queue_id].weight = attr_value;
> +             break;
> +     case RTE_EVENT_QUEUE_ATTR_AFFINITY:
> +             dev->mlt_prio[queue_id].affinity = attr_value;
> +             break;
> +     default:
> +             plt_sso_dbg("Ignored setting attribute id %u", attr_id);
> +             return 0;
> +     }

Why return 0 here? This is a failure, the PMD did *not* set the attribute ID.
Make the user aware of that fact, return -1; or -EINVAL or something.

Document the explicit return values at Eventdev header level, so all PMDs can
align on the return values, providing consistency to the application.

<snip>

Reply via email to