On Thu, Jun 04, 2020 at 06:02:54PM +0200, Toke Høiland-Jørgensen wrote: > Hangbin Liu <liuhang...@gmail.com> writes: > > > On Thu, Jun 04, 2020 at 02:37:23PM +0200, Toke Høiland-Jørgensen > > wrote: > >> > Now I use the ethtool_stats.pl to count forwarding speed and here is the > >> > result: > >> > > >> > With kernel 5.7(ingress i40e, egress i40e) > >> > XDP: > >> > bridge: 1.8M PPS > >> > xdp_redirect_map: > >> > generic mode: 1.9M PPS > >> > driver mode: 10.4M PPS > >> > >> Ah, now we're getting somewhere! :) > >> > >> > Kernel 5.7 + my patch(ingress i40e, egress i40e) > >> > bridge: 1.8M > >> > xdp_redirect_map: > >> > generic mode: 1.86M PPS > >> > driver mode: 10.17M PPS > >> > >> Right, so this corresponds to a ~2ns overhead (10**9/10400000 - > >> 10**9/10170000). This is not too far from being in the noise, I suppose; > >> is the difference consistent? > > > > Sorry, I didn't get, what different consistent do you mean? > > I meant, how much do the numbers vary between each test run?
Oh, when run it at the same period, the number is stable, the range is about ~0.05M PPS. But after a long time or reboot, the speed may changed a little. Here is the new test result after I reboot the system: Kernel 5.7 + my patch(ingress i40e, egress i40e) xdp_redirect_map: generic mode: 1.9M PPS driver mode: 10.2M PPS xdp_redirect_map_multi: generic mode: 1.58M PPS driver mode: 7.16M PPS Kernel 5.7 + my patch(ingress i40e, egress i40e + veth(No XDP on peer)) xdp_redirect_map: generic mode: 2.2M PPS driver mode: 14.2M PPS xdp_redirect_map_multi: generic mode: 1.6M PPS driver mode: 9.9M PPS Kernel 5.7 + my patch(ingress i40e, egress i40e + veth(with XDP_DROP on peer)) xdp_redirect_map: generic mode: 1.6M PPS driver mode: 13.6M PPS xdp_redirect_map_multi: generic mode: 1.3M PPS driver mode: 8.7M PPS Kernel 5.7 + my patch(ingress i40e, egress i40e + veth(No XDP on peer)) xdp_redirect_map_multi: generic mode: 1.15M PPS driver mode: 3.48M PPS Kernel 5.7 + my patch(ingress i40e, egress i40e + veth(with XDP_DROP on peer)) xdp_redirect_map_multi: generic mode: 0.98M PPS driver mode: 3.15M PPS This time the number looks more reasonable. Thanks Hangbin