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

Han Zhou hzhou at ovn.org
Wed Sep 9 21:13:04 UTC 2020


On Wed, Sep 9, 2020 at 6:39 AM Mark Michelson <mmichels at redhat.com> wrote:
>
> Thanks for addressing my concerns on patch 9.
>
> Acked-by: Mark Michelson <mmichels at redhat.com>
>
> Warning: I'm also ACKing Numan's patch series that also adds some
> lflow-level caching (but he is caching expressions). So whoever loses
> this merge race may have some work to do in order to apply their patch
> cleanly.
>
Thanks Mark for the review, and the warning :).
I applied the series to master, and also the first 4 patches to
branch-20.06 and patch 1,2,4 to branch-20.03, to fix the conjunction flow
bug in those branches.

Thanks,
Han

> On 9/7/20 2:45 AM, Han Zhou 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 ovn-scale-test with 3000 HVs and 30k lports, the end-to-end latency
between
> > the moment a lflow is updated in SB DB and the moment when all the 3K
HVs
> > complete OVS flow updating has reduced around 60% (from 1s to 400ms).
perf
> > report also shows ~40% of CPU reduced in ovn-controller.
> >
> > Another important change of this series is the fix of the conjunction
handling
> > problem.
> >
> > v1 -> v2:
> >
> > - Addressed Mark's comments for defining different data types for
desired flows
> >    and installed flows, and related refactoring. (patch 6/9)
> > - Updated comments for the cross reference structures between desired
flows and
> >    SB UUIDs with a diagram to help understanding. (patch 4/9)
> >
> > 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 | 1041
+++++++++++++++++++++++++++++++++++++++++----------
> >   controller/ofctrl.h |   39 +-
> >   tests/ovn.at        |  225 ++++++++++-
> >   4 files changed, 1164 insertions(+), 247 deletions(-)
> >
>


More information about the dev mailing list