Previously the needed garps and rarps where calculated in each loop of the ovn-controller in pinctrl_run. This is quite wasteful as most of the time nothing relevant changes. In large external networks this can have a significant performance impact on the ovn-controller.
Previous patches https://patchwork.ozlabs.org/project/ovn/patch/zzxvora5keucn...@sit-sdelap1634.int.lidl.net/ extraced just a limited part of the functionality to an engine node. This patchset now limits the logic in pinctrl_run to the absolute minimum. Also it addresses some issues with incremental processing changes while the southbound connection is unavailable. v9->v10: * rebased * fixed countdown in first patch v8->v9: * rebased * rework usage of cmap for garp_rarp data v7->v8: * rebased * improved handling of daemon_started_recently v6->v7: * rebased * fixed ct-zone inconsitencies that break ci v5->v6: rebased Felix Huettner (3): controller: Defer until sb data is available. controller: Fix ct zone assignment I+P. controller: Extract garp_rarp to engine node. controller/automake.mk | 4 +- controller/binding.c | 33 +- controller/binding.h | 8 +- controller/ct-zone.c | 19 +- controller/ct-zone.h | 2 +- controller/garp_rarp.c | 559 ++++++++++++++++++++++++++++++ controller/garp_rarp.h | 79 +++++ controller/ovn-controller.c | 263 +++++++++++++- controller/pinctrl.c | 659 +++--------------------------------- controller/pinctrl.h | 3 +- lib/mac-binding-index.c | 45 +++ lib/mac-binding-index.h | 6 + lib/ovn-util.c | 19 +- tests/ovn-controller.at | 1 - tests/ovn-performance.at | 3 - tests/ovn.at | 31 -- 16 files changed, 1042 insertions(+), 692 deletions(-) create mode 100644 controller/garp_rarp.c create mode 100644 controller/garp_rarp.h base-commit: 1850925e95b2395eb13706168b633ecad01dd0b1 -- 2.43.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev