[dpdk-dev] Memory allocation in libraries

Burakov, Anatoly anatoly.burakov at intel.com
Thu Oct 10 16:20:26 CEST 2019


On 09-Oct-19 10:38 AM, Bruce Richardson wrote:
> On Wed, Oct 09, 2019 at 10:13:07AM +0200, Morten Brørup wrote:
>> Hi all,
>>
>> I just noticed an inconsistency in the use of memory allocation:
>>
>> Some libraries allocate their data structures using the rte_memzone library,
>> e.g. the rte_ring library:
>> http://code.dpdk.org/dpdk/latest/source/lib/librte_ring/rte_ring.c#L163
>>
>> And some libraries allocate their data structures using the rte_malloc library,
>> e.g. the rte_hash library:
>> http://code.dpdk.org/dpdk/latest/source/lib/librte_hash/rte_cuckoo_hash.c#L273
>>
>>
>> These are data structures being used in the data plane,
>> so I would like to know if this was given any deeper thoughts,
>> and if there are any performance differences.
>>
> Both memzones and malloc blocks now come from the same memory, so there
> should be no performance differences. Both allocation schemes now use
> hugepage memory, so at this point it's largely a matter of preference which
> is used. Originally, memzones were preferred in DPDK, since malloc did not
> allow getting the physical address info, but I believe that is now possible
> for both allocation types.
> 
> /Bruce
> 

That is correct, although i would say it's not a "matter of preference" 
of which is used, but rather matter of whether the additional features 
offered by memzone allocator (lookup by name, alignment, etc.) are needed.

-- 
Thanks,
Anatoly


More information about the dev mailing list