[dpdk-dev] rte APIs for allocating IOVA contiguous memory

Devendra Singh Rawat dsinghrawat at marvell.com
Fri Sep 18 09:49:51 CEST 2020


Apart from using rte_memzone_reserve_* APIs, is there any other way to allocate IOVA contiguous memory block in DPDK ?
If I am correct there is no 'rte' API to allocate an anonymous IOVA contiguous memory block from a heap, right ? 

My PMD needs to allocate many IOVA contiguous memory blocks of different sizes according to parameters passed to DPDK application.
These blocks are shared by PMD and HW.
I can't use mempool as block size is not fixed.
I can't use rte_memzone_reserve_* either as I am hitting RTE_MAX_MEMZONE limit, and setting this limit to a higher value is not an option for me.
I also can't enforce the policies of using legacy memory model, and IOMMU in VA mode.

I can see rte_malloc_socket() but it does not provide any provision to pass RTE_MEMZONE_IOVA_CONTIG flag to 
malloc_heap_alloc().

Thanks,
Devendra


More information about the dev mailing list