On 2018年04月24日 16:44, Magnus Karlsson wrote:
We have run some benchmarks on a dual socket system with two Broadwell
E5 2660 @ 2.0 GHz with hyperthreading turned off. Each socket has 14
cores which gives a total of 28, but only two cores are used in these
experiments. One for TR/RX and one for the user space application. The
memory is DDR4 @ 2133 MT/s (1067 MHz) and the size of each DIMM is
8192MB and with 8 of those DIMMs in the system we have 64 GB of total
memory. The compiler used is gcc version 5.4.0 20160609. The NIC is an
Intel I40E 40Gbit/s using the i40e driver.

Below are the results in Mpps of the I40E NIC benchmark runs for 64
and 1500 byte packets, generated by commercial packet generator HW that is
generating packets at full 40 Gbit/s line rate.

AF_XDP performance 64 byte packets. Results from RFC V2 in parenthesis.
Benchmark   XDP_SKB   XDP_DRV
rxdrop       2.9(3.0)   9.4(9.3)
txpush       2.5(2.2)   NA*
l2fwd        1.9(1.7)   2.4(2.4) (TX using XDP_SKB in both cases)
This number looks not very exciting. I can get ~3Mpps when using testpmd in
a guest with xdp_redirect.sh on host between ixgbe and TAP/vhost. I believe
we can even better performance without virt. It would be interesting to
compare this performance with e.g testpmd + virito_user(vhost_kernel) + XDP.
Note that all the XDP_SKB numbers plus the TX part of XDP_DRV for l2fwd
uses SKBs and the generic XDP path in the kernel. I am not surprised those
numbers are lower than what you are seeing with XDP_DRV support.
(If that is what you are running? Unsure about your setup).

Yes, I'm using haswell E5-2630 v3 @ 2.40GHz and ixgbe.

  The
9.4 Mpps for RX is what you get with the XDP_DRV support and copies
out to user space. Or is it this number you think is low?

No rxdrop looks ok. I mean for l2fwd only.

  Zerocopy will be added
in later patch sets.

With that said, both XDP_SKB and XDP_DRV can be optimized. We
have not spent that much time on optimizations at this point.


Yes, and it is interesting to compare the performance numbers between AF_XDP and TAP XDP + vhost_net since their functions are almost equivalent.

Thanks

Reply via email to