Hi

You probably can do runtime tx/rx queue for ixgbe vf too.
And you’re right, you need to add RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | 
RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP for dev_capa.

And the most important thing is you need to do something like 
i40e_dev_rx_queue_setup_runtime() for i40e.
This function does some queue configuration check and the most important thing 
queue_init. Because queue_init is in dev_start, so runtime queue needs extra 
queue_init first.
And don’t forget that the first queue needs to set rx_funtion.

Anyway, you need to do similar things (i40e_dev_rx/tx_queue_setup_runtime) for 
ixgbevf.

I don’t see anything else you need to be careful about but not 100% sure.

BRs
Xiaoyun

From: Wu, Jianyue (NSB - CN/Hangzhou) <jianyue...@nokia-sbell.com>
Sent: Thursday, April 29, 2021 16:44
To: Li, Xiaoyun <xiaoyun...@intel.com>; users@dpdk.org; wei....@intel.com; 
Zhang, Qi Z <qi.z.zh...@intel.com>
Subject: RE: How can we enable runtime tx queue setup in XEON X552 eth device?

Hello,

Add more experts.

Best Regards,
Dave(Jianyue)

From: Wu, Jianyue (NSB - CN/Hangzhou)
Sent: 2021年4月29日 16:40
To: 'Li, Xiaoyun' <xiaoyun...@intel.com<mailto:xiaoyun...@intel.com>>; 
users@dpdk.org<mailto:users@dpdk.org>
Subject: RE: How can we enable runtime tx queue setup in XEON X552 eth device?

Hello,

How can we do it like this? Thanks😊
https://doc.dpdk.org/dts/test_plans/dynamic_queue_test_plan.html#:~:text=Dynamic%20queue%20%C2%B6%20Currently%2C%20to%20configure%20a%20DPDK,the%20device%2C%20at%20this%20point%20traffic%20can%20flow.

Dynamic queue lets etherdev driver exposes the capability flag through 
rte_eth_dev_info_get when it supports deferred queue configuraiton, then base 
on this flag, rte_eth_[rx|tx]_queue_setup could decide to continue to setup the 
queue or just return fail when device already started.
rte_eth_dev_info_get->dev_info_get for X552 VF didn’t set flag of 
RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP.

Best Regards,
Dave(Jianyue)

From: Wu, Jianyue (NSB - CN/Hangzhou) 
<jianyue...@nokia-sbell.com<mailto:jianyue...@nokia-sbell.com>>
Sent: 2021年4月29日 16:23
To: Wu, Jianyue (NSB - CN/Hangzhou) 
<jianyue...@nokia-sbell.com<mailto:jianyue...@nokia-sbell.com>>; 
users@dpdk.org<mailto:users@dpdk.org>
Subject: How can we enable runtime tx queue setup in XEON X552 eth device?

Hello,

How can we enable runtime tx queue setup in XEON X552 eth device? Thanks indeed!
Now try to add queue in runtime in X552 VF, error will be reported.
“rte_eth_tx_quuee_setup: err=-16, port = 1”
Here -16 means EBUSY, because the eth device is already started, if configure 
this interface before start, it is fine.

If I try to add dev_capa in ixgbevf_dev_info_get() in DPDK code, then another 
error will be reported.
“Ethdev port_id=0 tx_queue_id=1, new added offloads 0x4000 must be within 
per-queue offload capabilities 0x0 in rte_eth_tx_queue_setup()”

While in X552 datasheet, it says it is supported.

In DPDK i40e driver, seems runtime tx queue setup is supported(setup TxQ when 
eth interface is running)
drivers/net/i40e/i40e_ethdev.c
                dev_info->dev_capa =
                                RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
                                RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;

Best Regards,
Dave(Jianyue)

Reply via email to