Hi Anatoly
I see this multiple queue support is added by you.
Could you kindly help me to understand why
rte_power_ethdev_pmgmt_queue_enable need other queues to be in stopped state?
commit 5dff9a72b0efeab02a2b71e52c4871805b7e64cb
Author: Anatoly Burakov
anatoly.burakov@intel.com
Date: Fri Jul 9 16:08:15 2021 +0000
power: support callbacks for multiple Rx queues
Thank you.
Br, Xiaoping
From: Xiaoping Yan (NSB)
Sent: 2023年2月16日
21:00
To: users@dpdk.org
Subject: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped
Hi experts,
I’m trying to use dpdk power pmd management APIs in my dpdk application.
My application uses several ports, each have one rx queue, and it goes like this
1.
Init first port, setup rx queue, call rte_power_ethdev_pmgmt_queue_enable, and start the first port
2.
Init second port, setup rx queue, call rte_power_ethdev_pmgmt_queue_enable, and start the second port
3.
…
Now for the first port & queue, rte_power_ethdev_pmgmt_queue_enable return success, but for the second port & queue, it returns -16
From rte_power_ethdev_pmgmt_queue_enable code, I think it fails when checking if other queues are stopped as well.
/* check if other queues are stopped as well */
ret =
cfg_queues_stopped(lcore_cfg);
if (ret
!= 1) {
/* error means invalid queue, 0 means queue wasn't stopped */
ret =
ret <
0 ? -EINVAL : -EBUSY;
goto
end;
}
This seems quite strange for me, why other queues have to be in stopped state?
Can anyone help to explain?
Thank you.
Br, Xiaoping