Hi,
1. When calling rte_eth_dev_stop mbuf pool is depleted.
There appears to be a race condition that occurs when RTE_IXGBE_INC_VECTOR is
defined:
ixgbe_reset_rx_queue(struct ixgbe_adapter *adapter, struct ixgbe_rx_queue *rxq)
{
??.
#ifdef RTE_IXGBE_INC_VECTOR
rxq->rxrearm_start = 0;
>>>>>>>>sleep here appears to solve
rxq->rxrearm_nb = 0;
#endif
Behaviour also described here:
http://dpdk.org/ml/archives/users/2016-April/000488.html
2. Steps to recreate issue:
* rte_mempool_free_count
* rte_eth_dev_stop
* rte_mempool_free_count - should see a spike in allocated mbufs from
mempool.
3. 2 workarounds that appear to work:
* Set CONFIG_RTE_IXGBE_INC_VECTOR=n.
* Add sleep in ixgbe_reset_rx_queue
Regards.
Ori Zakin