[dpdk-dev] [RFC v2 03/17] mempool/octeontx: add callback to calculate memory size

Andrew Rybchenko arybchenko at solarflare.com
Sat Mar 10 16:49:41 CET 2018


Hi Santosh,

On 02/01/2018 04:40 PM, santosh wrote:
> On Thursday 01 February 2018 03:31 PM, santosh wrote:
>> 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;
> ok, You are removing above check in v2- 06/17, so ignore above comment.
> I suggest to move this patch and keep it after 06/17. Or perhaps keep
> common mempool changes first then followed by driver specifics changes in your
> v3 series.

Finally I've decided to include these changes into the patch which
removes get_capabilities [1]. Please, take a look at suggested version.
I think it is the most transparent solution. Otherwise it is hard
to avoid the issue found by you above.

I'm sorry, I've forgot to include you in CC.

[1] https://dpdk.org/dev/patchwork/patch/35934/

Thanks,
Andrew.


More information about the dev mailing list