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