[v5,4/5] power: modify return of queue_stopped
Checks
Commit Message
Since some vdevs like virtio and vhost do not support rxq_info_get and
queue state inquiry, the error return value -ENOTSUP need to be ignored
when queue_stopped cannot get rx queue information and rx queue state.
This patch changes the return value of queue_stopped when
rte_eth_rx_queue_info_get return ENOTSUP to support vdevs which cannot
provide rx queue information and rx queue state enable power management.
Signed-off-by: Miao Li <miao.li@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/power/rte_power_pmd_mgmt.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
Comments
> -----Original Message-----
> From: Li, Miao <miao.li@intel.com>
> Sent: Friday, October 15, 2021 11:12 PM
> To: dev@dpdk.org
> Cc: Xia, Chenbo <chenbo.xia@intel.com>; maxime.coquelin@redhat.com; Li, Miao
> <miao.li@intel.com>; Burakov, Anatoly <anatoly.burakov@intel.com>
> Subject: [PATCH v5 4/5] power: modify return of queue_stopped
>
> Since some vdevs like virtio and vhost do not support rxq_info_get and
> queue state inquiry, the error return value -ENOTSUP need to be ignored
> when queue_stopped cannot get rx queue information and rx queue state.
> This patch changes the return value of queue_stopped when
> rte_eth_rx_queue_info_get return ENOTSUP to support vdevs which cannot
ENOTSUP -> -ENOTSUP
With this fixed:
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
> provide rx queue information and rx queue state enable power management.
>
> Signed-off-by: Miao Li <miao.li@intel.com>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> lib/power/rte_power_pmd_mgmt.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/lib/power/rte_power_pmd_mgmt.c b/lib/power/rte_power_pmd_mgmt.c
> index 0ce40f0875..39a2b4cd23 100644
> --- a/lib/power/rte_power_pmd_mgmt.c
> +++ b/lib/power/rte_power_pmd_mgmt.c
> @@ -382,8 +382,13 @@ queue_stopped(const uint16_t port_id, const uint16_t
> queue_id)
> {
> struct rte_eth_rxq_info qinfo;
>
> - if (rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo) < 0)
> - return -1;
> + int ret = rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo);
> + if (ret < 0) {
> + if (ret == -ENOTSUP)
> + return 1;
> + else
> + return -1;
> + }
>
> return qinfo.queue_state == RTE_ETH_QUEUE_STATE_STOPPED;
> }
> --
> 2.25.1
Hi Chenbo,
> -----Original Message-----
> From: Xia, Chenbo <chenbo.xia@intel.com>
> Sent: Friday, October 15, 2021 3:47 PM
> To: Li, Miao <miao.li@intel.com>; dev@dpdk.org
> Cc: maxime.coquelin@redhat.com; Burakov, Anatoly
> <anatoly.burakov@intel.com>
> Subject: RE: [PATCH v5 4/5] power: modify return of queue_stopped
>
> > -----Original Message-----
> > From: Li, Miao <miao.li@intel.com>
> > Sent: Friday, October 15, 2021 11:12 PM
> > To: dev@dpdk.org
> > Cc: Xia, Chenbo <chenbo.xia@intel.com>; maxime.coquelin@redhat.com; Li,
> Miao
> > <miao.li@intel.com>; Burakov, Anatoly <anatoly.burakov@intel.com>
> > Subject: [PATCH v5 4/5] power: modify return of queue_stopped
> >
> > Since some vdevs like virtio and vhost do not support rxq_info_get and
> > queue state inquiry, the error return value -ENOTSUP need to be ignored
> > when queue_stopped cannot get rx queue information and rx queue state.
> > This patch changes the return value of queue_stopped when
> > rte_eth_rx_queue_info_get return ENOTSUP to support vdevs which cannot
>
> ENOTSUP -> -ENOTSUP
>
> With this fixed:
>
> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
I will fix it in the next version.
Thanks,
Miao
>
> > provide rx queue information and rx queue state enable power management.
> >
> > Signed-off-by: Miao Li <miao.li@intel.com>
> > Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> > ---
> > lib/power/rte_power_pmd_mgmt.c | 9 +++++++--
> > 1 file changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/power/rte_power_pmd_mgmt.c
> b/lib/power/rte_power_pmd_mgmt.c
> > index 0ce40f0875..39a2b4cd23 100644
> > --- a/lib/power/rte_power_pmd_mgmt.c
> > +++ b/lib/power/rte_power_pmd_mgmt.c
> > @@ -382,8 +382,13 @@ queue_stopped(const uint16_t port_id, const
> uint16_t
> > queue_id)
> > {
> > struct rte_eth_rxq_info qinfo;
> >
> > - if (rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo) < 0)
> > - return -1;
> > + int ret = rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo);
> > + if (ret < 0) {
> > + if (ret == -ENOTSUP)
> > + return 1;
> > + else
> > + return -1;
> > + }
> >
> > return qinfo.queue_state == RTE_ETH_QUEUE_STATE_STOPPED;
> > }
> > --
> > 2.25.1
@@ -382,8 +382,13 @@ queue_stopped(const uint16_t port_id, const uint16_t queue_id)
{
struct rte_eth_rxq_info qinfo;
- if (rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo) < 0)
- return -1;
+ int ret = rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo);
+ if (ret < 0) {
+ if (ret == -ENOTSUP)
+ return 1;
+ else
+ return -1;
+ }
return qinfo.queue_state == RTE_ETH_QUEUE_STATE_STOPPED;
}