On Mon, May 1, 2017 at 5:42 PM, Ben Pfaff <b...@ovn.org> wrote: > On Fri, Apr 21, 2017 at 06:55:27PM -0700, Han Zhou wrote: >> When there are in-flight msgs being sent to OVS, ofctrl_put will >> skip, which makes all the flows computed in that main loop >> iteration useless. To avoid the wasted CPU cycles, a check is added >> before lflow/physical flow run in each iteration. >> >> This has huge performance improvement in below testing: >> - 1 lswitch with 10 lports bound locally >> - Each lport has an ingress ACL, referencing the same address-set >> - The address-set has 10,000 IPv4 addresses >> >> For each IP address in the address-set, there will be 3 >> OpenFlow rules generated for each ACL. So the total number >> of rules is 300k+. >> >> Without the patch, it takes 50+ minutes to install all the >> rules to ovs-vswitchd. >> >> With the patch, it takes 16 seconds to install all the rules >> to ovs-vswitchd. >> >> The reason is that the large number of rules are sent to >> ovs-vswitchd gradually in many iterations of ovn-controller >> main loop. Without the patch, cpu cycles are wasted in >> lflow_run to re-processing the large address set in every >> main loop iteration. With the patch, this re-processing is >> avoided in iterations when there are pending rules sending. >> >> Signed-off-by: Han Zhou <zhou...@gmail.com> > > Wow, that's a huge performance improvement, really amazing. Thank you > for implementing this! I applied it to master.
This patch made it into OVS 2.8. It makes such a big difference to performance that I wonder if it's worth backporting to OVS 2.7. Does anyone have a strong opinion about that? If there's no objections, I'd like to backport it. -- Russell Bryant _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev