From: Miao Li Date: Mon, 25 Oct 2021 14:47:24 +0000 (+0000) Subject: power: support missing Rx queue info X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c6e305141a98fe74796cb6da296a554b2706feeb;p=dpdk.git power: support missing Rx queue info 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. Fixes: 209fd585456c ("power: make ethdev power management thread unsafe") Cc: stable@dpdk.org Signed-off-by: Miao Li Acked-by: Anatoly Burakov Reviewed-by: Chenbo Xia --- 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; }