[ovs-dev] [PATCH ovn 2/2] ovn-controller: Fix flow installation latency caused by recompute.

Han Zhou zhouhan at gmail.com
Tue Jul 30 07:14:15 UTC 2019


On Mon, Jul 29, 2019 at 9:11 PM Numan Siddique <nusiddiq at redhat.com> wrote:
>
>
>
> On Tue, Jul 30, 2019 at 9:39 AM Numan Siddique <nusiddiq at redhat.com>
wrote:
>>
>>
>>
>> On Tue, Jul 30, 2019 at 7:10 AM Han Zhou <zhouhan at gmail.com> wrote:
>>>
>>> From: Han Zhou <hzhou8 at ebay.com>
>>>
>>> When there are in-flight flow-installations pending to ovs-vswitchd,
>>> current incremental processing logic prioritizes new change handling.
>>> However, in scenarios where frequent recomputes are triggered, the
>>> later recompute would block the flow-installation for previously
>>> computed flows because recompute usually takes long time, especially
>>> when there are large number of flows. This results in worse latency
>>> than the version without incremental processing in specific scale
>>> test scenarios.
>>>
>>> While we can simply fix the problem by prioritizing flow installation
>>> rather than new change handling, it can cause the incremental
>>> processing to degrade to always recompute in certain scenarios when
>>> there are some changes triggering recomputes, followed by a lot of
>>> continously coming changes that can be handled incrementally. Because
>>> OVSDB change tracker cannot preserve changes across iterations, once
>>> the recompute is triggered and resulted in a lot of pending messages
>>> to ovs-vswitchd, and if we choose to skip the engine_run()
>>> in the next iteration when a incrementally processible change comes,
>>> we miss the opportunity to handle that tracked change and will have
>>> to trigger recompute again in the next next iteration, and so on, if
>>> such changes come continously.
>>>
>>> This patch solves the problem by introducing
engine_set_abort_recompute(),
>>> so that we can prioritize new change handling if the change can be
>>> incrementally processed, but if the change triggers recompute, we
>>> abort there without spending CPU on the recompute to avoid blocking
>>> the previous computed flow installation.
>>>
>>> Reported-by: Daniel Alvarez Sanchez <dalvarez at redhat.com>
>>> Reported-by: Numan Siddique <nusiddiq at redhat.com>
>>> Reported-at:
https://mail.openvswitch.org/pipermail/ovs-discuss/2019-June/048822.html
>>> Tested-by: Numan Siddique <nusiddiq at redhat.com>
>>> Acked-by: Numan Siddique <nusiddiq at redhat.com>
>>> Acked-by: Mark Michelson <mmichels at redhat.com>
>>> Signed-off-by: Han Zhou <hzhou8 at ebay.com>
>>> ---
>>
>>
>> Thanks. I applied this series to master.
>>
>> Numan
>
>
> I think we need this fix for branch 2.12, can you please post the back
port patch.
>
> Thanks
> Numan
>
Thank Numan. For 2.12, I think the original patch posted should work:
https://patchwork.ozlabs.org/patch/1135991/


More information about the dev mailing list