On Fri, Dec 06, 2019 at 02:09:24AM -0500, yang_y...@163.com wrote: > From: Yi Yang <yangy...@inspur.com> > > Current netdev_linux_rxq_recv_tap and netdev_linux_rxq_recv_sock > just receive single packet, that is very inefficient, per my test > case which adds two tap ports or veth ports into OVS bridge > (datapath_type=netdev) and use iperf3 to do performance test > between two ports (they are set into different network name space). > > The result is as below: > > tap: 295 Mbits/sec > veth: 207 Mbits/sec > > After I change netdev_linux_rxq_recv_tap and > netdev_linux_rxq_recv_sock to use batch process, the performance > is boosted by about 7 times, here is the result: > > tap: 1.96 Gbits/sec > veth: 1.47 Gbits/sec > > Undoubtedly this is a huge improvement although it can't match > OVS kernel datapath yet. > > FYI: here is thr result for OVS kernel datapath: > > tap: 37.2 Gbits/sec > veth: 36.3 Gbits/sec > > Note: performance result is highly related with your test machine > , you shouldn't expect the same results on your test machine. > > Signed-off-by: Yi Yang <yangy...@inspur.com>
Hi Yi Yang, Are you testing this using OVS-DPDK? If you're using OVS-DPDK, then you should use DPDK's vdev to open and attach tap/veth device to OVS. I think you'll see much better performance. The performance issue you pointed out only happens when using userspace datapath without DPDK library, where afxdp is used. I'm still looking for a better solutions for faster interface for veth (af_packet) and tap. Thanks William _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev