Hi all,I've got a very simple eBPF program that counts packets per queue in a per-cpu map.
I use IPerf in TCP mode, I limit the CPU cores to 2 so performance is limited by CPU (always at 100%).
With a XL710 NIC 40G link, with the XDP program loaded, I get 32.5. Without I get ~33.3Gbps. Pretty similar, somehow expected.
With a ConnectX 5 100G link, I get ~33.3Gbps without the XDP program but ~26 with it. The behavior seems similar with a simple XDP_PASS program.
Any idea why MLX5 driver behaves like this? perf top is not conclusive at first glance. I'd say check_object_size and copy_user_enhanced_fast_string rise up but the stack is unclear from where.
I use 5.1-rc3, compiled myself using Ubuntu 18.04's latest .config file. Thanks, Tom