On Wed, Jun 03, 2020 at 01:05:28PM +0200, Toke Høiland-Jørgensen wrote: > > Hi Toke, > > > > Here is the result I tested with 2 i40e 10G ports on physical machine. > > The pktgen pkt_size is 64. > > These numbers seem a bit low (I'm getting ~8.5MPPS on my test machine > for a simple redirect). Some of that may just be performance of the > machine, I guess (what are you running this on?), but please check that > you are not limited by pktgen itself - i.e., that pktgen is generating > traffic at a higher rate than what XDP is processing. Here is the test topology, which looks like Host A | Host B | Host C eth0 + eth0 - eth1 + eth0 I did pktgen sending on Host A, forwarding on Host B. Host B is a Dell PowerEdge R730 (128G memory, Intel(R) Xeon(R) CPU E5-2690 v3) eth0, eth1 is an onboard i40e 10G driver Test 1: add eth0, eth1 to br0 and test bridge forwarding Test 2: Test xdp_redirect_map(), eth0 is ingress, eth1 is egress Test 3: Test xdp_redirect_map_multi(), eth0 is ingress, eth1 is egress > > > Bridge forwarding(I use sample/bpf/xdp1 to count the PPS, so there are two modes data): > > generic mode: 1.32M PPS > > driver mode: 1.66M PPS > > I'm not sure I understand this - what are you measuring here exactly? > Finally, since the overhead seems to be quite substantial: A comparison > with a regular network stack bridge might make sense? After all we also > want to make sure it's a performance win over that :) I though you want me also test with bridge forwarding. Am I missing something? > > > xdp_redirect_map: > > generic mode: 1.88M PPS > > driver mode: 2.74M PPS > > Please add numbers without your patch applied as well, for comparison. OK, I will. > > > xdp_redirect_map_multi: > > generic mode: 1.38M PPS > > driver mode: 2.73M PPS > > I assume this is with a single interface only, right? Could you please > add a test with a second interface (so the packet is cloned) as well? > You can just use a veth as the second target device. OK, so the topology on Host B should be like eth0 + eth1 + veth0, eth0 as ingress, eth1 and veth0 as egress, right? Thanks Hangbin