From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qa0-f42.google.com (mail-qa0-f42.google.com [209.85.216.42]) by dpdk.org (Postfix) with ESMTP id 4A9B35930 for ; Thu, 24 Jul 2014 07:18:26 +0200 (CEST) Received: by mail-qa0-f42.google.com with SMTP id j15so2435776qaq.1 for ; Wed, 23 Jul 2014 22:19:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=prPAlZrO7xJbPHOO74WGMM94HfJGs9DSnNmeLtriKLg=; b=bPMaYZvSpIFxx7iHVwD/UapFR077PD6pKtHz9RLF6gkqpAZQFUD8ukq9H0Lr5mrl/j g0/x0PXj4dkE4p2fP5B7TI4t87QvIPrl9tqBokSKk9psxqgmBR4HnVtQVsIVWKcKD9OZ Ip/Qi+VZu59RoPsXmh/cBmY6QLlEL4RqGG//9QUg+SHvpCTH7gWQ5oWjOpKER1D/U8RZ x2ZWVsrD8dkuq7RYBT2yLCrvhg9bUMxTTDApIAh5CQqyClaYQGU+dqqJsGPr99zQaXAm /RndSq8eWG9pEN5w8Pyk4fCr49vhpIAHMyqHHxWdppbLvZCMoiyWGqM/i9t4QjEViID5 QPVg== MIME-Version: 1.0 X-Received: by 10.224.15.72 with SMTP id j8mr11223335qaa.8.1406179192058; Wed, 23 Jul 2014 22:19:52 -0700 (PDT) Received: by 10.140.80.34 with HTTP; Wed, 23 Jul 2014 22:19:52 -0700 (PDT) In-Reply-To: References: <59AF69C657FD0841A61C55336867B5B0343B1714@IRSMSX103.ger.corp.intel.com> Date: Thu, 24 Jul 2014 09:49:52 +0430 Message-ID: From: Mahdi Dashtbozorgi To: dev@dpdk.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] free a memzone X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2014 05:18:26 -0000 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 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@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@dpdk.org] On Behalf Of Mahdi Dashtbozorgi >> > Sent: Wednesday, July 23, 2014 2:05 AM >> > To: dev@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 >> > 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. >> > > >> > >