Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails
From: Thomas Monjalon <hidden>
Date: 2021-11-22 08:58:25
22/11/2021 08:59, Rakesh Kudurumalla:
From: Thomas Monjalon <redacted>quoted
20/07/2021 18:50, Rakesh Kudurumalla:quoted
Current pmd_perf_autotest() in continuous mode tries to enqueue MAX_TRAFFIC_BURST completely before starting the test. Some drivers cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desccountquoted
can fit it.Which driver is failing to do so? Why it cannot enqueue 32 packets?Octeontx2 driver is failing to enqueue because hardware buffers are full before test.
Why hardware buffers are full?
pmd_perf_autotest() in continuous mode tries to enqueue MAX_TRAFFIC_BURST (2048) before starting the test.quoted
quoted
This patch changes behaviour to stop enqueuing after few retries.If there is a real limitation, there will be issues in more places than this test program. I feel it should be addressed either in the driver or at ethdev level. [...]quoted
@@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) nb_tx = RTE_MIN(MAX_PKT_BURST, num); nb_tx = rte_eth_tx_burst(portid, 0, &tx_burst[idx], nb_tx); + if (nb_tx == 0) + retry_cnt++; num -= nb_tx; idx += nb_tx; + if (retry_cnt == MAX_RETRY_COUNT) { + retry_cnt = 0; + break; + }