[dpdk-dev] propose a solution for mapping same virtual address space to asymmetric processes

Nissim Nisimov NissimN at Radware.com
Tue Oct 13 17:40:02 CEST 2015


Hi all,

The below will try to suggest a modification to the initialization of Environment Abstraction Layer (AKA EAL) so it will be able to allocate memory zones from same virtual memory addresses even if the primary process is not similar to the secondary processes.

Problem:
The DPDK Primary/Secondary model requires that the exact same hugepage memory mappings be present in all applications.
An issue may occur when the Primary and secondary processes are not symmetric in such way that the code has big differences (for example, Primary process is a traffic distributer and secondary is a worker).
The result may be that specific virtual address region in the first process won't be available in the second process.


Suggested solution:
Map all related rte and uio sections somewhere close to the end of huge pages memory (that mean rte_eal_memory_init() should be called before rte_config_init() in primary process)
According to our observations there will be more probability to success when allocating the above sections after huge pages section (actually uio is already allocated after the huge pages area)

It solved our problem when trying to work with a primary traffic distributer which is a very "light" process and few secondary worker processes.


Please share your thoughts on this before I will try to commit our patch for review

Thanks,
Nissim






More information about the dev mailing list