Hi Alexey,

> > DPDK tries to allocate all hugepages that are available to find the
> > smallest amount of physically contiguous memory segments to cover the
> > specified memory size. It then releases all those hugepages that it
> > did not need not sure how this is related to orig=1/0 though.
> 
> 
> No, it never does release a single page :-/

That is weird.

As far as I can remember, when EAL initializes the pages, it checks if there 
are any active locks on hugepage files for a given prefix (which presumably you 
didn't set, so it uses a default "rte" prefix), and if there aren't, it removes 
the hugepage files. That way, if the pages are still in use (e.g. by a 
secondary process), they aren't removed, but if they aren't used, then they are 
freed, and reserved back.

That is, technically, DPDK never "frees" any pages (unless you don't supply 
-m/--socket-mem switch, in which case it does free unused pages, but still 
leaves used pages after exit), so after a DPDK process exit they're not cleaned 
up. However, whenever a primary DPDK process runs again, it is usually able to 
clean them up and thus should be able to initialize again. Perhaps something is 
preventing file removal from your hugetlbfs? Like, maybe a permissions issue or 
something?

Thanks,
Anatoly

Reply via email to