diff mbox series

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

Message ID 20210915124340.1765-2-anton.ivanov@cambridgegreys.com
State Accepted
Headers show
Series [ovs-dev,v8,1/3] northd: Disable parallel processing for logical_dp_groups | expand

Checks

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

Commit Message

Anton Ivanov Sept. 15, 2021, 12:43 p.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 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index 3113fafc7..ed231510e 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -13178,6 +13178,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);
     }