On 10/18/2021 3:16 PM, Miao Li wrote:
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.


Don't we want to backport this patch? In case later a patch in the main
repo relies on this return type and that needs to be merged to LTS...

Also need to clarify if this is a fix or not.

Signed-off-by: Miao Li <miao...@intel.com>
Acked-by: Anatoly Burakov <anatoly.bura...@intel.com>
Reviewed-by: Chenbo Xia <chenbo....@intel.com>

power library maintainer ack/review is missing.

---
  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;
  }


Reply via email to