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

Mark Michelson mmichels at redhat.com
Wed Sep 9 13:38:56 UTC 2020


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.

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