[ovs-dev] [PATCH ovn 0/9] Incremental processing for flow installation.

Han Zhou hzhou at ovn.org
Thu Sep 3 04:31:26 UTC 2020


On Fri, Aug 21, 2020 at 12:16 PM Han Zhou <hzhou at ovn.org> wrote:
>
> Incremental processing has been implementation in ovn-controller, but we
were
> still doing full comparison between desired flow table and installed flow
table
> every time to figure out the changes need to be pushed to OVS. This
series is
> mainly to utilize the incremental processing information to figure out
flow
> changes to OVS without full table scanning, to further reduce CPU of
> ovn-controller. In a scale environment of 1200 HVs and 12k lports, the
CPU is
> reduced by ~39% for port binding operation on local chassis.
>

I did more tests with the help of [0] so that the end to end latency is
accurately measured.

With 3k HVs (yes!) and 30k lports, without this patch series, the time
spent on adding a static route:
        ovn-northd completion:                  1107ms
        ovn-controller(s) completion:           2171ms

With the patch series:
        ovn-northd completion:                  1108ms
        ovn-controller(s) completion:           1505ms

We can see that including the processing time of both ovn-northd and all
ovn-controllers, the end to end latency is reduced by 30%.
If considering ovn-controllers only (the total time spent on processing SB
lflow change by all HVs), the latency reduced by 60%.

[0] https://patchwork.ozlabs.org/project/ovn/list/?series=198962

> Another important change of this series is the fix of the conjunction
handling
> problem.
>
> Han Zhou (9):
>   ofctrl: change ofctrl_dup_flow to module internal function
>   ovn.at: Fix AT for conjunction case.
>   lflow.c: No need to remove flows for adding new datapath.
>   ovn-controller: Fix conjunction handling with incremental processing.
>   ovn.at: Add test case for duplicated flow handling.
>   ofctrl.c: Maintain references between installed flows and desired flows.
>   ofctrl.c: Refactor - move openflow msg construction to functions.
>   ofctrl: Incremental processing for flow installation by tracking.
>   ofctrl.c: Merge opposite changes of tracked flows before installing.
>
>  controller/lflow.c  | 106 ++++---
>  controller/ofctrl.c | 865
+++++++++++++++++++++++++++++++++++++++++++---------
>  controller/ofctrl.h |  39 ++-
>  tests/ovn.at        | 225 +++++++++++++-
>  4 files changed, 1036 insertions(+), 199 deletions(-)
>
> --
> 2.1.0
>


More information about the dev mailing list