[dpdk-users] Question on dpdk memory allocation.

Pradeep Fernando pradeepfn at gmail.com
Wed Aug 29 22:20:14 CEST 2018


Hi all,

My target software stack does not support hugetlbfs, but it supports
huge-paged mmaps. I'm trying to port dpdk huge-page allocate logic to use
mmap based allocations. Hence the below question. I use dpdk 16.11.1  (
slightly old i know :) )

I see that, there is
1. malloc based allocation
2. mmap over hugetlbfs allocation
in
https://github.com/pradeepfn/dpdk/blob/8af51192e564a0331896cd1594a830d92a228845/lib/librte_eal/linuxapp/eal/eal_memory.c#L962

The memory_zone allocator of dpdk uses physically contiguous memory
segments as described in -
https://doc.dpdk.org/guides/prog_guide/env_abstraction_layer.html#memory-segments-and-memory-zones-memzone
.

This explains why, huge-page mappings are stored in mem-segment structures
in  virtual/physical contiguous blocks. -- after complex mapping/remapping
process.

But how does malloc allocation ( no_hugetlbfs) provides same guarantees. It
is virtually contiguous but not physically contiguous beyond 4KB. How does
malloc allocation works with memzone_allocator in that case?

thanks
--Pradeep


More information about the users mailing list