Rather than freeing the previously allocated memzone, could you not just re-initialize the mempool using something like rte_mempool_xmem_create?
> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Mahdi Dashtbozorgi > Sent: Wednesday, July 23, 2014 2:05 AM > To: dev at dpdk.org > Subject: Re: [dpdk-dev] free a memzone > > Hi guys, > > Is there any suggestion to free the previously allocated memzone? > I really need help in this issue. > Any help is appreciated. > > Best Regards, > Mahdi. > > > > On Tue, Jul 22, 2014 at 4:03 PM, Mahdi Dashtbozorgi <mdasht at gmail.com> > wrote: > > > Hi, > > > > I have two processes, which uses DPDK multi-process feature to communicate. > > Master process captures packets from NIC and put them to a ring buffer, > > which is shared between master and slave process. > > The slave process looks up the shared ring buffer using rte_ring_lookup > > function and reads the packets. > > The slave process needs a memory pool, too. Therefore, it creates a > > mempool using rte_mempool_create. But If the slave process crashes during > > its processing and runs again, rte_mempool_create function fails and tells > > that there is a memory zone with that name. > > If I use rte_mempool_lookup in this case, the memory pool is not a clean > > memory pool. Because the previous run of slave process did not terminate > > gracefully and did not return all the objects to the pool. > > Is there any function to free an existing memory zone, which I call before > > rte_mempool_create to ensure that previous memory pool does not exists > > anymore? > > > > Best Regards, > > Mahdi. > >