[ovs-discuss] OVS balance-tcp bonding

Andy Zhou azhou at nicira.com
Thu Oct 22 23:36:20 UTC 2015


Hi, Joe,

This is potentially a better fix that I'd like to propose for the
'net' tree. It would be great if you can test it in your set up to
see if it solved the issue you are facing with.

Thanks,

andy

diff --git a/datapath/actions.c b/datapath/actions.c
index c529bbb..208eb30 100644
--- a/datapath/actions.c
+++ b/datapath/actions.c
@@ -1003,11 +1003,11 @@ int ovs_execute_actions(struct datapath *dp,
struct sk_buff *skb,
        err = do_execute_actions(dp, skb, key,
                                 acts->actions, acts->actions_len);

-       if (!level)
-               process_deferred_actions(dp);
-
        this_cpu_dec(exec_actions_level);

+       if (level <= 1)
+               process_deferred_actions(dp);
+
        /* This return status currently does not reflect the errors
         * encounted during deferred actions execution. Probably needs to
         * be fixed in the future.



On Tue, Oct 20, 2015 at 8:55 PM, Andy Zhou <azhou at nicira.com> wrote:
> On Tue, Oct 20, 2015 at 1:42 PM, Joe Talerico <jtaleric at redhat.com> wrote:
>> When using balance-tcp bonding with OVS we were seeing ARP issues when we
>> reached ~ 100 guests. I Tracked as much as possible here :
>> https://bugzilla.redhat.com/show_bug.cgi?id=1267291
>>
>> Has anyone seen this behavior before?
>>
>> Switching to active/backup resolves the issue.
>
> Thanks for reporting the issue with lots of relevant information.  I
> have not seen this issue before.
> One the error messages in the bugzilla report suggested that you may
> ran into the deferred action fifo limit.
>
> Would you please try to increase its size with the following patch,
> and report back how much it helped. This changes OVS kernel module, so
> you will have to recompile the kernel module.
>
> This is not like the right fix, but should help to confirm if there
> are any other issues in the way to get your set up working.
>
> diff --git a/datapath/actions.c b/datapath/actions.c
> index c529bbb..a4afecb 100644
> --- a/datapath/actions.c
> +++ b/datapath/actions.c
> @@ -53,7 +53,7 @@ struct deferred_action {
>         struct sw_flow_key pkt_key;
>  };
>
> -#define DEFERRED_ACTION_FIFO_SIZE 10
> +#define DEFERRED_ACTION_FIFO_SIZE 100
>  struct action_fifo {
>         int head;
>         int tail;



More information about the discuss mailing list