This allows releasing RX/TX queue memory. --- We're using DPDK 16.04 and have a test suite which performs a sequence of separate tests of the type
allocate mempool rte_eth_dev_configure(port, n_rxq, n_txq, ...) setup rx/tx queues rte_eth_dev_start(port) <perform actual test> stop rx/tx queues rte_eth_dev_stop(port) -> rte_eth_dev_configure(port, 0, 0, ...) check that there are no leaks from the mempool The crucial point is the marked line above. This is done so that the rx_queue_release/tx_queue_release callbacks in the PMD is called, so that mbufs allocated by the driver is released. Without this patch, this explicitly isn't allowed. Is there a particular reason why it shouldn't? It was introduced in d505ba80a165a9735f3d9d3c6ab68a7bd85f271b "ethdev: support unidirectional configuration" lib/librte_ether/rte_ethdev.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index a31018e..5481d45 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -944,11 +944,6 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, */ (*dev->dev_ops->dev_infos_get)(dev, &dev_info); - if (nb_rx_q == 0 && nb_tx_q == 0) { - RTE_PMD_DEBUG_TRACE("ethdev port_id=%d both rx and tx queue cannot be 0\n", port_id); - return -EINVAL; - } - if (nb_rx_q > dev_info.max_rx_queues) { RTE_PMD_DEBUG_TRACE("ethdev port_id=%d nb_rx_queues=%d > %d\n", port_id, nb_rx_q, dev_info.max_rx_queues); -- 1.9.1