diff mbox series

[ovs-dev,v2,3/3] pinctrl: Fixed 100% cpu on ovs connection loss.

Message ID 20240326115525.3433113-3-xsimonar@redhat.com
State Accepted
Headers show
Series [ovs-dev,1/2] pinctrl: Fix missing MAC_Bindings. | expand

Commit Message

Xavier Simonart March 26, 2024, 11:55 a.m. UTC
This issue is happening for instance when running test
"ovn-controller - Chassis other_config".

Signed-off-by: Xavier Simonart <xsimonar@redhat.com>

---
v2: Amend subject summary.
    Rebase on origin/main.
---
 controller/pinctrl.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

Comments

Ales Musil March 28, 2024, 8:50 a.m. UTC | #1
On Tue, Mar 26, 2024 at 12:55 PM Xavier Simonart <xsimonar@redhat.com>
wrote:

> This issue is happening for instance when running test
> "ovn-controller - Chassis other_config".
>
> Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
>
> ---
> v2: Amend subject summary.
>     Rebase on origin/main.
> ---
>  controller/pinctrl.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/controller/pinctrl.c b/controller/pinctrl.c
> index f75b04696..ec6c7549b 100644
> --- a/controller/pinctrl.c
> +++ b/controller/pinctrl.c
> @@ -3627,13 +3627,14 @@ pinctrl_handler(void *arg_)
>
>          rconn_run_wait(swconn);
>          rconn_recv_wait(swconn);
> -        send_garp_rarp_wait(send_garp_rarp_time);
> -        ipv6_ra_wait(send_ipv6_ra_time);
> -        ip_mcast_querier_wait(send_mcast_query_time);
> -        svc_monitors_wait(svc_monitors_next_run_time);
> -        ipv6_prefixd_wait(send_prefixd_time);
> -        bfd_monitor_wait(bfd_time);
> -
> +        if (rconn_is_connected(swconn)) {
> +            send_garp_rarp_wait(send_garp_rarp_time);
> +            ipv6_ra_wait(send_ipv6_ra_time);
> +            ip_mcast_querier_wait(send_mcast_query_time);
> +            svc_monitors_wait(svc_monitors_next_run_time);
> +            ipv6_prefixd_wait(send_prefixd_time);
> +            bfd_monitor_wait(bfd_time);
> +        }
>          seq_wait(pinctrl_handler_seq, new_seq);
>
>          latch_wait(&pctrl->pinctrl_thread_exit);
> --
> 2.31.1
>
>
Looks good to me, thanks.

Acked-by: Ales Musil <amusil@redhat.com>
Mark Michelson April 3, 2024, 4:44 p.m. UTC | #2
Thanks Xavier and Ales. I pushed this to main and all branches back to 
branch-23.06.

On 3/28/24 04:50, Ales Musil wrote:
> On Tue, Mar 26, 2024 at 12:55 PM Xavier Simonart <xsimonar@redhat.com>
> wrote:
> 
>> This issue is happening for instance when running test
>> "ovn-controller - Chassis other_config".
>>
>> Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
>>
>> ---
>> v2: Amend subject summary.
>>      Rebase on origin/main.
>> ---
>>   controller/pinctrl.c | 15 ++++++++-------
>>   1 file changed, 8 insertions(+), 7 deletions(-)
>>
>> diff --git a/controller/pinctrl.c b/controller/pinctrl.c
>> index f75b04696..ec6c7549b 100644
>> --- a/controller/pinctrl.c
>> +++ b/controller/pinctrl.c
>> @@ -3627,13 +3627,14 @@ pinctrl_handler(void *arg_)
>>
>>           rconn_run_wait(swconn);
>>           rconn_recv_wait(swconn);
>> -        send_garp_rarp_wait(send_garp_rarp_time);
>> -        ipv6_ra_wait(send_ipv6_ra_time);
>> -        ip_mcast_querier_wait(send_mcast_query_time);
>> -        svc_monitors_wait(svc_monitors_next_run_time);
>> -        ipv6_prefixd_wait(send_prefixd_time);
>> -        bfd_monitor_wait(bfd_time);
>> -
>> +        if (rconn_is_connected(swconn)) {
>> +            send_garp_rarp_wait(send_garp_rarp_time);
>> +            ipv6_ra_wait(send_ipv6_ra_time);
>> +            ip_mcast_querier_wait(send_mcast_query_time);
>> +            svc_monitors_wait(svc_monitors_next_run_time);
>> +            ipv6_prefixd_wait(send_prefixd_time);
>> +            bfd_monitor_wait(bfd_time);
>> +        }
>>           seq_wait(pinctrl_handler_seq, new_seq);
>>
>>           latch_wait(&pctrl->pinctrl_thread_exit);
>> --
>> 2.31.1
>>
>>
> Looks good to me, thanks.
> 
> Acked-by: Ales Musil <amusil@redhat.com>
diff mbox series

Patch

diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index f75b04696..ec6c7549b 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -3627,13 +3627,14 @@  pinctrl_handler(void *arg_)
 
         rconn_run_wait(swconn);
         rconn_recv_wait(swconn);
-        send_garp_rarp_wait(send_garp_rarp_time);
-        ipv6_ra_wait(send_ipv6_ra_time);
-        ip_mcast_querier_wait(send_mcast_query_time);
-        svc_monitors_wait(svc_monitors_next_run_time);
-        ipv6_prefixd_wait(send_prefixd_time);
-        bfd_monitor_wait(bfd_time);
-
+        if (rconn_is_connected(swconn)) {
+            send_garp_rarp_wait(send_garp_rarp_time);
+            ipv6_ra_wait(send_ipv6_ra_time);
+            ip_mcast_querier_wait(send_mcast_query_time);
+            svc_monitors_wait(svc_monitors_next_run_time);
+            ipv6_prefixd_wait(send_prefixd_time);
+            bfd_monitor_wait(bfd_time);
+        }
         seq_wait(pinctrl_handler_seq, new_seq);
 
         latch_wait(&pctrl->pinctrl_thread_exit);