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