> > +/**
> > + * Retrieve the wake up address from specific queue
> > + *
> > + * @param port_id
> > + * The port identifier of the Ethernet device.
> > + * @param queue_id
> > + * The Tx queue on the Ethernet device for which information
> > + * will be retrieved.
> > + * @param wake_addr
> > + * The pointer point to the address which is used for monitoring.
> > + * @param expected
> > + * The pointer point to value to be expected when descriptor is set.
> > + * @param mask
> > + * The pointer point to comparison bitmask for the expected value.
> > + *
> > + * @return
> > + * - 0: Success.
> > + * -EINVAL: Failed to get wake address.
> > + */
> > +__rte_experimental
> > +int rte_eth_get_wake_addr(uint16_t port_id, uint16_t queue_id,
> > + volatile void **wake_addr,
> > + uint64_t *expected, uint64_t *mask);
>
> It looks to be a very low-level API.
> Can't we do something more "ready-to-use" at ethdev level?
I think that series provides both:
There is a low-level API at ethdev/eal to retrieve information to wait for
and actual function to put core to sleep.
Plus there is a high-level API at rte_power lib:
rte_power_pmd_mgmt_queue_enable()/rte_power_pmd_mgmt_queue_disable()
that uses these low-level ones and puts some high-level logic around it.
>From my perspective it is a good design choice,
as it keeps all power-related burden inside rte_power library and
provides user a lot of flexibility in terms of API usage.
Konstantin
>
> Cc'in the relevant maintainers...
> Note: sorry this comment come late but ethdev maintainers were not Cc.
> Reminder: having no feedback is not a good sign, you should request comments.
>