On Wed, Jun 17, 2026 at 11:00 AM Dumitru Ceara <[email protected]> wrote:

> Hi Ales,
>
> I was chatting with Xavier this morning about this.
>

Hi Dumitru.

>
> On 6/16/26 7:42 PM, Ales Musil wrote:
> >>>  /* Table of ipv6_ra_state structures, keyed on logical port name.
> >>> @@ -4724,14 +4722,15 @@ pinctrl_wait(struct ovsdb_idl_txn
> *ovnsb_idl_txn)
> >>>  {
> >>>      ovs_mutex_lock(&pinctrl_mutex);
> >>>      if (ovnsb_idl_txn) {
> >> Not related to this pach, but why did we ever need to do the check only
> >> if ovnsb_idl_txn?
> >>
> >> I think https://github.com/ovn-org/ovn/commit/d305d9f shouldn't have
> >> needed to add it at all, right?
> >>
> > Yeah I think that was a mistake.
> >
>
> Looking closer at the code, it wasn't a mistake.
>
> It actually prevents busy loops in ovn-controller if the SB is slow(er)
> and we have longer periods in ovn-controller with a transaction in
> flight _and_ also pending controller events and vport bindings.
>
> If we remove the txn check, we'd busy loop in ovn-controller until the
> SB commits the currently in-flight transaction.
>
> >
> >>> -        wait_put_mac_bindings();
> >>>          wait_controller_event();
> >>>          wait_put_vport_bindings();
> >>> -        wait_put_fdbs();
> >>>          seq_wait(pinctrl_main_seq, main_seq);
> >>>      }
> >>>      wait_activated_ports();
>
> This one, wait_activated_ports(), is probably OK as we don't seem to
> need SB access for updating the state of these ports.
>
> >>>      ovs_mutex_unlock(&pinctrl_mutex);
> >>> +
> >>> +    wait_put_mac_bindings();
> >>> +    wait_put_fdbs();
>
> But this means we should also guard these two with an if (ovnsb_idl_txn).
>
> What do you think?
>

Yeah that makes sense, I'll send a patch in a bit.


> >>>  }
>
> Regards,
> Dumitru
>
>
Regards,
Ales
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to