[dpdk-dev] [RFC v2 03/17] mempool/octeontx: add callback to calculate memory size
santosh
santosh.shukla at caviumnetworks.com
Thu Feb 1 11:01:24 CET 2018
Hi Andrew,
On Thursday 01 February 2018 11:48 AM, Jacob, Jerin wrote:
> The driver requires one and only one physically contiguous
> memory chunk for all objects.
>
> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
> ---
> drivers/mempool/octeontx/rte_mempool_octeontx.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx.c
> b/drivers/mempool/octeontx/rte_mempool_octeontx.c
> index d143d05..4ec5efe 100644
> --- a/drivers/mempool/octeontx/rte_mempool_octeontx.c
> +++ b/drivers/mempool/octeontx/rte_mempool_octeontx.c
> @@ -136,6 +136,30 @@ octeontx_fpavf_get_capabilities(const struct rte_mempool *mp,
> return 0;
> }
>
> +static ssize_t
> +octeontx_fpavf_calc_mem_size(const struct rte_mempool *mp,
> + uint32_t obj_num, uint32_t pg_shift,
> + size_t *min_chunk_size, size_t *align)
> +{
> + ssize_t mem_size;
> +
> + /*
> + * Simply need space for one more object to be able to
> + * fullfil alignment requirements.
> + */
> + mem_size = rte_mempool_calc_mem_size_def(mp, obj_num + 1, pg_shift,
> +
I think, you don't need that (obj_num + 1) as because
rte_xmem_calc_int() will be checking flags for
_ALIGNED + _CAPA_PHYS_CONFIG i.e..
mask = MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS | MEMPOOL_F_CAPA_PHYS_CONTIG;
if ((flags & mask) == mask)
/* alignment need one additional object */
elt_num += 1;
> min_chunk_size, align);
> + if (mem_size >= 0) {
> + /*
> + * The whole memory area containing the objects must be
> + * physically contiguous.
> + */
> + *min_chunk_size = mem_size;
> + }
> +
> + return mem_size;
> +}
> +
> static int
> octeontx_fpavf_register_memory_area(const struct rte_mempool *mp,
> char *vaddr, rte_iova_t paddr, size_t len)
> @@ -159,6 +183,7 @@ static struct rte_mempool_ops octeontx_fpavf_ops = {
> .get_count = octeontx_fpavf_get_count,
> .get_capabilities = octeontx_fpavf_get_capabilities,
> .register_memory_area = octeontx_fpavf_register_memory_area,
> + .calc_mem_size = octeontx_fpavf_calc_mem_size,
> };
>
> MEMPOOL_REGISTER_OPS(octeontx_fpavf_ops);
> --
> 2.7.4
>
More information about the dev
mailing list