Not local datapath related entries were added and removed in every loops,
causing constant pinctrl wakeup.

Fixes: 70ff8243040f ("OVN: Add IGMP SB definitions and ovn-controller support")
Signed-off-by: Xavier Simonart <[email protected]>
---
 controller/pinctrl.c | 3 +++
 tests/system-ovn.at  | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index f62022361..0a0891ef3 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -5749,6 +5749,9 @@ ip_mcast_sync(struct ovsdb_idl_txn *ovnsb_idl_txn,
         struct ip_mcast_snoop_cfg cfg;
         bool flush_groups = false;
 
+        if (!get_local_datapath(local_datapaths, dp_key)) {
+            continue;
+        }
         ip_mcast_snoop_cfg_load(&cfg, ip_mcast);
         if (ip_mcast_snoop_state_update(dp_key, &cfg, &flush_groups)) {
             notify = true;
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 8d1f21609..717a5d767 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -5027,6 +5027,9 @@ OVS_WAIT_UNTIL([
     test "${n_reset}" = "1"
 ])
 
+ovn-appctl coverage/show > ovn_counters
+AT_CHECK([test 50 -gt $(grep -c pinctrl_notify_handler_thread ovn_counters)], 
[0])
+
 # Check that we do not get too many immediate wake up.
 # Tolerate a few for any race conditions.
 AT_CHECK([test 5 -gt `cat ovn-controller.log | \
-- 
2.47.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to