diff mbox series

[ovs-dev,1/2] northd: Resize the hash to correct parameters after build

Message ID 20210825073500.20621-1-anton.ivanov@cambridgegreys.com
State Superseded
Headers show
Series [ovs-dev,1/2] northd: Resize the hash to correct parameters after build | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes fail github build: failed

Commit Message

Anton Ivanov Aug. 25, 2021, 7:34 a.m. UTC
From: Anton Ivanov <anton.ivanov@cambridgegreys.com>

Parallel builds may result in suboptimal hash bucket sizing.
In the absense of dp-groups this does not matter as the hash
is purely storage and not used for lookups during the build.

Such a hash needs to be resized to a correct size at the end
of the build to ensure that any lookups during the lflow
reconcilliation phase are done as fast as possible.

Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
---
 northd/ovn-northd.c | 5 +++++
 ovs                 | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index af413aba4..14659c407 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -13057,6 +13057,11 @@  build_lflows(struct northd_context *ctx, struct hmap *datapaths,
                                     igmp_groups, meter_groups, lbs,
                                     bfd_connections);
 
+    /* Parallel build may result in a suboptimal hash. Resize the
+     * hash to a correct size before doing lookups */
+
+    hmap_expand(&lflows);
+
     if (hmap_count(&lflows) > max_seen_lflow_size) {
         max_seen_lflow_size = hmap_count(&lflows);
     }