Hi Ori, > -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ori Zakin > Sent: Thursday, August 4, 2016 11:38 PM > To: Zhang, Helin; Ananyev, Konstantin; dev at dpdk.org > Subject: [dpdk-dev] Mbuf leak issue with IXGBE in vector mod > > 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. Have you stopped the rx/tx before do this stop/start? I think we'll hit this memory leak problem if the traffic is not stopped. There's an assumption that it?s APP's responsibility to stop rx/tx before operating the ports as we know dpdk is lockless.
> > 3. 2 workarounds that appear to work: > * Set CONFIG_RTE_IXGBE_INC_VECTOR=n. > * Add sleep in ixgbe_reset_rx_queue > > > Regards. > Ori Zakin