On Thu, Nov 03, 2016 at 11:35:14AM +0200, Dror Birkman wrote: > Hi, > > I have a huge memory leak when I release mbufs allocated > by eth_pcap_rx_jumbo(). > > I use rte_mempool_put_bulk() to release the mbufs. > To my horror I found out it puts back to the mempool only the head mbuf and > not its segments! > > I know rte_pktmbuf_free() frees the mbuf and all it segments, but afaik it > is not thread safe. > > What is the thread safe way to free mbufs (preferably in bulk) and their > segments? > I'm not aware of any thread-safety differences between mempool_put and pktmbuf_free - which in the end just calls mempool_put for each segment. For freeing mbufs with multiple segments, I think you'll have to use the regular mbuf_free function, or write your own special bulk version.
/Bruce

