Thanks to everyone for the reviews. I have pushed the changes to main. On Mon, Jan 12, 2026 at 12:27 PM Numan Siddique <[email protected]> wrote: > > On Mon, Jan 12, 2026 at 12:05 PM Mark Michelson via dev > <[email protected]> wrote: > > > > I ran some small tests. I'm attaching the test script (perf_test), as > > well as the test results from main (main_stats.txt) and from the lflow > > refactor (lflow_refactor_stats.txt). > > > > In summary, the test does the following: > > * Create 1000 logical switches. > > * Create 1000 logical routers, and link one logical switch to one > > logical router. > > * Perform an ovn-nbctl --wait=sb sync. > > > > For each of the operations listed above, we: > > * Time the operation. > > * Check the stopwatch stats for the "build_lflows" and "ovnnb_db_run" > > stopwatches. These are the stopwatches that run during a recompute of > > en_lflow and en_northd. This gives us an idea of how many recomputes > > we saw during the operation, and shows us stats for code areas that > > are affected by this patch series. > > * Clear stopwatch and incremental engine stats. > > * Run a recompute. > > * Check the stopwatch stats for "build_lflows" and "ovnnb_db_run" > > stopwatches again. This tells us how long a recompute takes once the > > network is fully built. > > > > The result is that main and the lflow refactor perform nearly > > identically. This is not too surprising since there aren't any > > algorithmic changes introduced in this refactor. The changes mostly > > center around the data types being used by the lflow library in OVN. > > > > If you have concerns about specific operations or code sections that > > are not reflected in this particular test, please let me know and I'll > > check those as well. > > Hi Mark, > > For the whole series: > Acked-by: Numan Siddique <[email protected]> > > You have to rebase and resolve conflicts before merging. > > Also if it makes sense, you can include the results of your scale > testing in one of the commit messages. > > Thanks > Numan > > > > > > On Mon, Jan 12, 2026 at 9:18 AM Mark Michelson <[email protected]> wrote: > > > > > > Hi Ilya, I can run some (unscientific) benchmarks using the OVN > > > sandbox and report back what I see. > > > > > > On Mon, Jan 12, 2026 at 4:50 AM Ilya Maximets <[email protected]> wrote: > > > > > > > > On 1/9/26 6:54 PM, Mark Michelson via dev wrote: > > > > > This series refactors the logical flow library with two goals in mind: > > > > > > > > > > 1) Eliminate the use of any structures that are created by the > > > > > en-northd > > > > > incremental engine node. Composable services will define new datapath > > > > > types that will bypass en-northd processing. This allows for them to > > > > > add, remove and sync logical flows without the need for structures > > > > > like > > > > > ovn_datapath or ovn_datapaths. > > > > > > > > > > 2) Eliminate the dichotomy that every logical datapath must either be > > > > > a > > > > > switch or a router. New datapath types may be added, and when they are > > > > > added, the lflow library needs to accommodate those new types without > > > > > having to be altered. > > > > > > > > > > Mark Michelson (9): > > > > > Add sparse array. > > > > > northd: Convert ovn_datapath to use sparse_array. > > > > > Use a sparse array for synced datapaths. > > > > > northd: Base ovn_datapath index on synced_datapath index. > > > > > lflow-mgr: Use a dynamic bitmap when updating SB DP groups. > > > > > datapath-sync: Make ovn_synced_datapath_from_sb() public. > > > > > lflow-mgr: Use an array for lflow dp groups. > > > > > lflow-mgr: Don't use ovn_datapath when adding logical flows. > > > > > lflow-mgr: Remove ovn_datapaths from functions. > > > > > > > > > > lib/automake.mk | 2 + > > > > > lib/ovn-util.h | 15 +++ > > > > > lib/sparse-array.c | 102 +++++++++++++++ > > > > > lib/sparse-array.h | 54 ++++++++ > > > > > northd/datapath-sync.c | 27 ++++ > > > > > northd/datapath-sync.h | 8 ++ > > > > > northd/en-datapath-sync.c | 62 ++++----- > > > > > northd/en-lflow.c | 22 ++-- > > > > > northd/en-lr-nat.c | 2 +- > > > > > northd/en-lr-stateful.c | 2 +- > > > > > northd/en-ls-arp.c | 2 +- > > > > > northd/en-ls-stateful.c | 2 +- > > > > > northd/en-sync-sb.c | 57 ++++---- > > > > > northd/inc-proc-northd.c | 7 + > > > > > northd/lb.c | 4 +- > > > > > northd/lflow-mgr.c | 214 > > > > > ++++++++++++++----------------- > > > > > northd/lflow-mgr.h | 52 ++++---- > > > > > northd/northd.c | 115 ++++++----------- > > > > > northd/northd.h | 15 +-- > > > > > tests/automake.mk | 1 + > > > > > tests/ovn-inc-proc-graph-dump.at | 2 + > > > > > tests/ovn.at | 5 + > > > > > tests/test-sparse-array.c | 206 +++++++++++++++++++++++++++++ > > > > > 23 files changed, 662 insertions(+), 316 deletions(-) > > > > > create mode 100644 lib/sparse-array.c > > > > > create mode 100644 lib/sparse-array.h > > > > > create mode 100644 tests/test-sparse-array.c > > > > > > > > > > > > > Hi, Mark, Ales. This code is touching a lot of performance-critical > > > > parts > > > > in northd. Do we have some performance numbers for it? ovn-heater is > > > > currently broken, unfortunately, but at least some manual test results > > > > with > > > > a large database to see recompute times would be good to have. > > > > > > > > Best regards, Ilya Maximets. > > > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >
_______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
