From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id D1C3E58CB for ; Fri, 3 Jun 2016 18:29:09 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP; 03 Jun 2016 09:29:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,413,1459839600"; d="scan'208";a="115588714" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.221.9]) ([10.237.221.9]) by fmsmga004.fm.intel.com with ESMTP; 03 Jun 2016 09:29:08 -0700 To: Olivier MATZ , dev@dpdk.org References: <1464787086-29555-1-git-send-email-ferruh.yigit@intel.com> <574FDA66.90909@6wind.com> <5751646D.2080009@intel.com> Cc: Anatoly Burakov From: Ferruh Yigit Message-ID: <5751B053.3080902@intel.com> Date: Fri, 3 Jun 2016 17:29:07 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <5751646D.2080009@intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH] ivshmem: add all memzones of mempool to metada 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: Fri, 03 Jun 2016 16:29:10 -0000 On 6/3/2016 12:05 PM, Ferruh Yigit wrote: > On 6/2/2016 8:04 AM, Olivier MATZ wrote: >> Hi Ferruh, >> >> Thank you for fixing this issue. >> >> On 06/01/2016 03:18 PM, Ferruh Yigit wrote: >>> [PATCH] ivshmem: add all memzones of mempool to metada >> >> Minor comment: it seems the title is truncated >> > > Right, I will fix in next version of patch. > >>> +static int >>> +add_mempool_to_metadata(const struct rte_mempool *mp, >>> + struct ivshmem_config *config) >>> +{ >>> + struct rte_mempool_memhdr *memhdr; >>> + int ret; >>> + >>> + ret = add_mempool_memzone_to_metadata(mp, config); >>> if (ret < 0) >>> return -1; >>> >>> + STAILQ_FOREACH(memhdr, &mp->mem_list, next) { >>> + ret = add_mempool_memzone_to_metadata(memhdr->addr, config); >>> + if (ret < 0) >>> + return -1; >>> + } >>> + >>> + /* mempool consists of memzone and ring */ >>> return add_ring_to_metadata(mp->ring, config); >>> } >>> >> >> In case you missed it: there is a function >> rte_mempool_mem_iter() that can be used to browse the >> memory chunks of a mempool. It's probably less convenient >> to use compared to directly browsing the list, but it >> may be more resistant to api changes. > > I wasn't aware rte_mempool_mem_iter(), I will update the patch to use this. > Although I prefer using the rte_mempool_mem_iter(); it is not straightforward because of the const qualifier of mp, and rte_mempool_mem_iter() doesn't accepts the const type, and casting const to non-const causes a compile warning: _"error: cast discards ‘const’ qualifier from pointer target type"_ An option is duplicating mp, (or part of it mp->mem_list) but that is ugly and can cause potentials defects in the future, another option is to use uint64_t to do pointer conversion, even uglier :), so I don't want to use this API for this case. So, I will only update the patch title and send a v2. >> >> Apart from that: >> Acked-by: Olivier Matz >> >> Thanks >> > > Thanks, > ferruh >