[dpdk-dev] free a memzone

Mahdi Dashtbozorgi mdasht at gmail.com
Thu Jul 24 07:19:52 CEST 2014


Hi Bruce,

Thank you for the response. That's a great Idea!
But I do not understand the last four parameters of this function. (vaddr,
paddr, pg_num, pg_shift)
I guess vaddr is the virtual address of the previously allocated mempool,
paddr is calculated using function call rte_mem_virt2phy(vaddr), am I
right? what about pg_num and pg_shift? how can I pass them correctly?

Best Regards,
Mahdi.


On Thu, Jul 24, 2014 at 9:48 AM, Mahdi Dashtbozorgi <mdasht at gmail.com>
wrote:

> Hi Bruce,
>
> Thank you for the response. That's a great Idea!
> But I do not understand the last four parameters of this function. (vaddr,
> paddr, pg_num, pg_shift)
> I guess vaddr is the virtual address of the previously allocated mempool,
> paddr is calculated using function call rte_mem_virt2phy(vaddr), am I
> right? what about pg_num and pg_shift? how can I pass them correctly?
>
> Best Regards,
> Mahdi.
>
>
> On Wed, Jul 23, 2014 at 11:09 PM, Richardson, Bruce <
> bruce.richardson at intel.com> wrote:
>
>> 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.
>> > >
>>
>
>


More information about the dev mailing list