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

anton.ivanov at cambridgegreys.com anton.ivanov at cambridgegreys.com
Wed Sep 15 12:43:39 UTC 2021


From: Anton Ivanov <anton.ivanov at 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 at cambridgegreys.com>
---
 northd/ovn-northd.c | 5 +++++
 1 file changed, 5 insertions(+)

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);
     }
-- 
2.20.1



More information about the dev mailing list