From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH] ivshmem: add all memzones of mempool to metada Date: Fri, 3 Jun 2016 17:29:07 +0100 Message-ID: <5751B053.3080902@intel.com> References: <1464787086-29555-1-git-send-email-ferruh.yigit@intel.com> <574FDA66.90909@6wind.com> <5751646D.2080009@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: Anatoly Burakov To: Olivier MATZ , dev@dpdk.org 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) In-Reply-To: <5751646D.2080009@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 >> >=20 > Right, I will fix in next version of patch. >=20 >>> +static int >>> +add_mempool_to_metadata(const struct rte_mempool *mp, >>> + struct ivshmem_config *config) >>> +{ >>> + struct rte_mempool_memhdr *memhdr; >>> + int ret; >>> + >>> + ret =3D add_mempool_memzone_to_metadata(mp, config); >>> if (ret < 0) >>> return -1; >>> =20 >>> + STAILQ_FOREACH(memhdr, &mp->mem_list, next) { >>> + ret =3D 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); >>> } >>> =20 >> >> 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. >=20 > I wasn't aware rte_mempool_mem_iter(), I will update the patch to use t= his. >=20 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 =91const=92 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 >> >=20 > Thanks, > ferruh >=20