The DPDK can be compiled to be run in IOVA VA mode with 'enable_iova_as_pa=false' meson option. If there is no explicit EAL --iova-mode parameter specified in the command line the rte_eal_init() tried to deduce VA or PA mode without taking into account the above mentioned compile time option, resulting into initialization failure.
Signed-off-by: Viacheslav Ovsiienko <viachesl...@nvidia.com> --- lib/eal/linux/eal.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index ae323cd492..9856ec9d12 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -1081,7 +1081,10 @@ rte_eal_init(int argc, char **argv) if (iova_mode == RTE_IOVA_DC) { RTE_LOG(DEBUG, EAL, "Buses did not request a specific IOVA mode.\n"); - if (!phys_addrs) { + if (!RTE_IOVA_IN_MBUF) { + iova_mode = RTE_IOVA_VA; + RTE_LOG(DEBUG, EAL, "IOVA as VA mode is forced by build option.\n"); + } else if (!phys_addrs) { /* if we have no access to physical addresses, * pick IOVA as VA mode. */ -- 2.18.1