On Wed, Feb 10, 2021 at 1:37 AM Dumitru Ceara <dce...@redhat.com> wrote: > > Scale tests have identified the lflow cache to be one of the main memory > consumers in ovn-controller. This series refactors the lflow cache code > and adds configuration knobs to limit the size (in lines and/or memory) > of the cache. > > Patches 1 and 6 fix issues with the already existing lflow cache code. > Even though patch 6 is a bug fix, it's easier to add it later in the > series because it uses the new lflow cache statistics (from patch 4) > to add a unit test that exercises the buggy scenario. > > Changes in v3: > - Addressed Mark and Numan's comments (individual changes listed in > each patch). > - Added acks where applicable. > Changes in v2: > - Added two bug fixes for already existing problems (patches 1 and 6). > - Added unit tests as requested by Mark. > - Added support for evicting "less important" entries when the cache > limit is reached. > - Improved cache entries memory accounting. > > Dumitru Ceara (10): > lflow: Fix cache update when I-P engine aborts. > lflow: Refactor convert_match_to_expr() to explicitly consume prereqs. > lflow-cache: Move the lflow cache to its own module. > lflow-cache: Add lflow-cache/show-stats command. > lflow-cache: Add unit tests. > lflow: Do not cache non-conjunctive flows that use address > sets/portgroups. > lflow-cache: Add coverage counters. > lflow-cache: Reclaim heap memory after cache flush. > lflow-cache: Make maximum number of cache entries configurable. > lflow-cache: Make max cache memory usage configurable.
Thanks Dumitru for addressing the comments in v3. I applied this series to master. Numan > > > NEWS | 5 > configure.ac | 1 > controller/automake.mk | 2 > controller/chassis.c | 44 ++++ > controller/lflow-cache.c | 371 ++++++++++++++++++++++++++++++++++++ > controller/lflow-cache.h | 81 ++++++++ > controller/lflow.c | 378 +++++++++++++----------------------- > controller/lflow.h | 10 - > controller/ovn-controller.8.xml | 34 +++ > controller/ovn-controller.c | 106 +++++++--- > controller/test-lflow-cache.c | 238 +++++++++++++++++++++++ > controller/test-ofctrl-seqno.c | 18 -- > include/ovn/expr.h | 3 > lib/expr.c | 43 ++++ > tests/automake.mk | 8 + > tests/ovn-lflow-cache.at | 405 > +++++++++++++++++++++++++++++++++++++++ > tests/ovn.at | 82 ++++++++ > tests/test-utils.c | 49 +++++ > tests/test-utils.h | 26 +++ > tests/testsuite.at | 1 > 20 files changed, 1597 insertions(+), 308 deletions(-) > create mode 100644 controller/lflow-cache.c > create mode 100644 controller/lflow-cache.h > create mode 100644 controller/test-lflow-cache.c > create mode 100644 tests/ovn-lflow-cache.at > create mode 100644 tests/test-utils.c > create mode 100644 tests/test-utils.h > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev