It has been observed that when we upgrade openvswitch with
thousands of openflow flows already established and there is heavy
traffic going through the switch, restoring flows can take a very
long time (8 minutes in one use case) with CPU running at 100%.
This can make the upgrade very expensive.

This commit restores openflow flows after disabling vswitchd packet
processing from the datapath. Once the flows are restored, it enables
packet processing.

Bug #16086.
Signed-off-by: Gurucharan Shetty <gshe...@nicira.com>
---
 utilities/ovs-ctl.in |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
index 1f10491..837f6ac 100755
--- a/utilities/ovs-ctl.in
+++ b/utilities/ovs-ctl.in
@@ -305,8 +305,10 @@ restore_ofports () {
 }
 
 restore_flows () {
-    [ -x "${script_flows}" ] && \
+    [ -x "${script_flows}" ] && ovs-appctl recv-disable && \
         action "Restoring saved flows" "${script_flows}"
+
+    ovs-appctl recv-enable
 }
 
 restore_interfaces () {
-- 
1.7.9.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to