You can try running the test with debug level, by adding ‘–log-level=eal,8’, and look for additional useful prints.
I.E:
./dpdk-testpmd --log-level=eal,8 -a 81:00.0 -l 0-7 – --forward-mode=txonly
In addition, for testing purposes you can try disabling DV flow and use the Verbs flow engine instead, by adding devargs of dv_flow_en=0. Do you see different results?
I.E:
./dpdk-testpmd --log-level=eal,8 -a 81:00.0,dv_flow_en=0 -l 0-7 – --forward-mode=txonly
I attached to this message the logs with maximum verbosity for the EAL, both with and without root permissions. The error message is essentially the same (lines 219-223 of the non-root log).
I noticed a few differences between the two logs, especially regarding the NUMA nodes, but I am not sure they have anything to do with my problem.
By disabling DV flow, I obtained the exact same result.
By gathering information about your dv_flow_en parameter, I came across the CONFIG_RTE_LIBRTE_MLX5_DEBUG compilation option, that I did not know about. I’ll try and see if this brings me more information…
I just figured that it is possible to increase verbosity of mlx5-related messages. Please find attached the logs produced this way, as a standard user. I also tried disabling DevX (UCTX_EN=0), which gives a different error, but still not much information.
So it looks like the only file capability needed is cap_net_raw, which makes sense.
Everything seem to run fine once I run sudo setcap cap_net_raw=eip dpdk-testpmd before launching testpmd.
EDIT: To avoid tweaking file permissions on hugepages, I now set the cap_dac_override capability at the same time, with sudo setcap cap_net_raw,cap_dac_override=eip dpdk-testpmd