Hi
A multinode test ("18: HA: Check for missing garp on leader when BFD goes
back up") is sometimes failing when
applying this patch.
While it requires further investigation, it looks like pinctrl does not
properly wake up in some cases, resulting in
missing garps.
I'll continue investigation and send v3.
Thanks
Xavier
On Wed, Apr 15, 2026 at 2:37 PM Xavier Simonart <[email protected]> wrote:
> Avoid garp_rarp waking up pinctrl when no change.
> As, with this patch, pinctrl is only waken up by garp_rarp when there are
> garp_rarp changes, add a peridic wake up for pinctrl for syncing
> coverage counters. Without this, pinctrl might sleep for a long time
> if no event such as packet_in, and recently updated counters might
> not be sync'ed and hence not updated in appctl coverage/show.
>
> Fixes: 05527bd6ccdb ("controller: Extract garp_rarp to engine node.")
> Signed-off-by: Xavier Simonart <[email protected]>
>
> ---
> -v2: Fix coverage counter issue reported by
> "dns lookup : 1 HV, 2 LS, 2 LSPs/LS" and by Ales.
> ---
> controller/garp_rarp.c | 2 +-
> controller/pinctrl.c | 2 ++
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/controller/garp_rarp.c b/controller/garp_rarp.c
> index 9d0c2c2e4..162fa0446 100644
> --- a/controller/garp_rarp.c
> +++ b/controller/garp_rarp.c
> @@ -565,7 +565,7 @@ garp_rarp_get_data(void)
> bool
> garp_rarp_data_changed(void) {
> bool ret = garp_rarp_data_has_changed;
> - garp_rarp_data_has_changed = true;
> + garp_rarp_data_has_changed = false;
> return ret;
> }
>
> diff --git a/controller/pinctrl.c b/controller/pinctrl.c
> index f62022361..1ad058f2b 100644
> --- a/controller/pinctrl.c
> +++ b/controller/pinctrl.c
> @@ -4048,6 +4048,8 @@ pinctrl_handler(void *arg_)
> latch_wait(&pctrl->pinctrl_thread_exit);
>
> ovsrcu_quiesce_start();
> + /* Wake-up periodicaly for coverage counters sync.*/
> + poll_timer_wait(1000);
> poll_block();
> }
>
> --
> 2.47.1
>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev