[dpdk-dev,v1,0/9] mempool: prepare to add bucket driver

Message ID 317a928a-f8de-13da-74bd-28fa0b5234b9@caviumnetworks.com (mailing list archive)
State Not Applicable, archived
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail apply issues

Commit Message

Santosh Shukla March 14, 2018, 3:49 p.m. UTC
  Hi Andrew,


On Saturday 10 March 2018 09:09 PM, Andrew Rybchenko wrote:

[...]

> RFCv1 -> RFCv2:
>   - add driver ops to calculate required memory size and populate
>     mempool objects, remove extra flags which were required before
>     to control it
>   - transition of octeontx and dpaa drivers to the new callbacks
>   - change info API to get information from driver required to
>     API user to know contiguous block size
>   - remove get_capabilities (not required any more and may be
>     substituted with more in info get API)
>   - remove register_memory_area since it is substituted with
>     populate callback which can do more
>   - use SPDX tags
>   - avoid all objects affinity to single lcore
>   - fix bucket get_count
>   - deprecate XMEM API
>   - avoid introduction of a new function to flush cache
>   - fix NO_CACHE_ALIGN case in bucket mempool

I'm evaluating your series in octeontx platform.
Noticed a build break for dpaa platform:
  CC dpaa_mempool.o
/home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c: In function ‘dpaa_populate’:
/home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:291:41: error: passing argument 1 of ‘rte_mempool_op_populate_default’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  return rte_mempool_op_populate_default(mp, max_objs, vaddr, paddr, len,
                                         ^
In file included from /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.h:15:0,
                 from /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:28:
/home/ubuntu/83xx/dpdk/build/include/rte_mempool.h:490:5: note: expected ‘struct rte_mempool *’ but argument is of type ‘const struct rte_mempool *’
 int rte_mempool_op_populate_default(struct rte_mempool *mp,
     ^
/home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c: At top level:
/home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:303:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .populate = dpaa_populate,
              ^
/home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:303:14: note: (near initialization for ‘dpaa_mpool_ops.populate’)
cc1: all warnings being treated as errors

may be consider adding for dpaa platform..

Will share test and review feedback for octeontx platform soon.

[...]
  

Comments

Andrew Rybchenko March 14, 2018, 3:57 p.m. UTC | #1
Hi Santosh,

On 03/14/2018 06:49 PM, santosh wrote:
> Hi Andrew,
>
>
> On Saturday 10 March 2018 09:09 PM, Andrew Rybchenko wrote:
>
> [...]
>
>> RFCv1 -> RFCv2:
>>    - add driver ops to calculate required memory size and populate
>>      mempool objects, remove extra flags which were required before
>>      to control it
>>    - transition of octeontx and dpaa drivers to the new callbacks
>>    - change info API to get information from driver required to
>>      API user to know contiguous block size
>>    - remove get_capabilities (not required any more and may be
>>      substituted with more in info get API)
>>    - remove register_memory_area since it is substituted with
>>      populate callback which can do more
>>    - use SPDX tags
>>    - avoid all objects affinity to single lcore
>>    - fix bucket get_count
>>    - deprecate XMEM API
>>    - avoid introduction of a new function to flush cache
>>    - fix NO_CACHE_ALIGN case in bucket mempool
> I'm evaluating your series in octeontx platform.
> Noticed a build break for dpaa platform:
>    CC dpaa_mempool.o
> /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c: In function ‘dpaa_populate’:
> /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:291:41: error: passing argument 1 of ‘rte_mempool_op_populate_default’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>    return rte_mempool_op_populate_default(mp, max_objs, vaddr, paddr, len,
>                                           ^
> In file included from /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.h:15:0,
>                   from /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:28:
> /home/ubuntu/83xx/dpdk/build/include/rte_mempool.h:490:5: note: expected ‘struct rte_mempool *’ but argument is of type ‘const struct rte_mempool *’
>   int rte_mempool_op_populate_default(struct rte_mempool *mp,
>       ^
> /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c: At top level:
> /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:303:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
>    .populate = dpaa_populate,
>                ^
> /home/ubuntu/83xx/dpdk/drivers/mempool/dpaa/dpaa_mempool.c:303:14: note: (near initialization for ‘dpaa_mpool_ops.populate’)
> cc1: all warnings being treated as errors

Yes, my bad, const should be simply removed to match prototype (and 
mempool is actually modified since it is populated). Will fix.

Many thank,
Andrew.
  

Patch

diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index a2bbb392a..ce5050627 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -263,8 +263,8 @@  dpaa_mbuf_get_count(const struct rte_mempool *mp)
        return bman_query_free_buffers(bp_info->bp);
 }
 
-static int
-dpaa_populate(const struct rte_mempool *mp, unsigned int max_objs,
+static int __rte_unused
+dpaa_populate(struct rte_mempool *mp, unsigned int max_objs,
              char *vaddr, rte_iova_t paddr, size_t len,
              rte_mempool_populate_obj_cb_t *obj_cb, void *obj_cb_arg)
 {