On 2/9/23 17:57, dheeraj wrote: > Hi Ilya Maximets , > > I did internal performance benchmarking tests with this patch . I tried with > different traffic (udp and vxlan) and with different packet size (64 and > 1024) . I don’t observe any performance degradation by applying the patch . > Even from the code changes , it doesn't look like that it can cause > performance degradation of 4%. > > Can you please elaborate how you tested .
Hi. I was using my usual setup: OVS with 2 PMD threads and 2 testpmd applications with virtio-user ports. One in txonly and the other in mac mode. So, the traffic is almost bi-directional: txonly --> vhost0 --> PMD#0 --> vhost1 --> mac --> vhost1 --> PMD#1 --> drop Since the first testpmd is in txonly mode, it doesn't receive any packets and they end up dropped on a send attempt by PMD#1. OpenFlow rules are either a simple NORMAL action or a direct in_port=A,output:B + in_port=B,output:A. Best regards, Ilya Maximets. > > Regards , > Dheeraj > > -----Original Message----- > From: Ilya Maximets <[email protected]> > Sent: 17 January 2023 01:41 > To: Dheeraj Kumar <[email protected]>; [email protected] > Cc: [email protected] > Subject: Re: [PATCH v3] dpif-netdev: Optimize flushing of output packet > buffers > > On 1/13/23 13:20, Dheeraj Kumar wrote: >> Problem Statement: >> Before OVS 2.12 the OVS-DPDK datapath transmitted processed rx packet >> batches directly to the wanted tx queues. In OVS 2.12 each PMD stores >> the processed packets in an intermediate buffer per output port and >> flushes these output buffers in a separate step. This buffering was >> introduced to allow better batching of packets for transmit. >> >> The current implementation of the function that flushes the output >> buffers performs a full scan overall output ports, even if only one >> single packet was buffered for a single output port. In systems with >> hundreds of ports this can take a long time and degrades OVS-DPDK >> performance significantly. >> >> Solution: >> Maintain a list of output ports with buffered packets for each PMD >> thread and only iterate over that list when flushing output buffers. >> >> Signed-off-by: Dheeraj Kumar <[email protected]> >> --- >> lib/dpif-netdev-private-thread.h | 7 ++++--- >> lib/dpif-netdev.c | 24 ++++++++++++------------ >> 2 files changed, 16 insertions(+), 15 deletions(-) > > Hi, Dheeraj. Thanks for the updated version. > Unfortunately, on a quick test with bidirectional traffic between > 2 vhost-user ports I see a noticeable 4% performance degradation with this > change applied. Could you, please, check why is that happening or if we can > avoid this? > > Best regards, Ilya Maximets. > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
