[ovs-dev] [PATCH] ovn-northd: Consistently use Datapath_Binding UUID for hashing flows.

Ben Pfaff blp at ovn.org
Fri Feb 23 21:03:07 UTC 2018


In one place, ovn-northd was hashing Logical_Switch or Logical_Router UUIDs
for ovn_lflow, and in another place it was hashing Datapath_Binding UUIDs.
This caused problems.  This commit changes ovn-northd to always hash the
Datapath_Binding UUID.

Jacob Sitnicki reported the following performance improvement for a similar
fix:

  Children      Self  Command     Shared Object        Symbol
before:
    76.19%     0.01%  ovn-northd  ovn-northd           [.] ovnnb_db_run
    11.04%     0.43%  ovn-northd  ovn-northd           [.] ovn_lflow_find
after:
    75.16%     0.05%  ovn-northd  ovn-northd           [.] ovnnb_db_run
     2.49%     0.17%  ovn-northd  ovn-northd           [.] ovn_lflow_find

Fixes: 8bf332225d4a ("ovn-northd: Reduce amount of flow hashing.")
Reported-by: Jakub Sitnicki <jkbs at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
 ovn/northd/ovn-northd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
index 5d764f6e9404..dcaa77dbf939 100644
--- a/ovn/northd/ovn-northd.c
+++ b/ovn/northd/ovn-northd.c
@@ -2278,7 +2278,7 @@ struct ovn_lflow {
 static size_t
 ovn_lflow_hash(const struct ovn_lflow *lflow)
 {
-    return ovn_logical_flow_hash(&lflow->od->key,
+    return ovn_logical_flow_hash(&lflow->od->sb->header_.uuid,
                                  ovn_stage_get_table(lflow->stage),
                                  ovn_stage_get_pipeline_name(lflow->stage),
                                  lflow->priority, lflow->match,
-- 
2.16.1



More information about the dev mailing list