Signed-off-by: Lai Jiangshan <[email protected]>
---
 tests/test_urcu_hash.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c
index 3730c2b..964a4e1 100644
--- a/tests/test_urcu_hash.c
+++ b/tests/test_urcu_hash.c
@@ -111,6 +111,7 @@ struct test_data {
 struct lfht_test_node {
        struct cds_lfht_node node;
        unsigned long hash;
+       unsigned long dup;
        unsigned long orig_hash;
        /* cache-cold for iteration */
        struct rcu_head head;
@@ -406,6 +407,8 @@ void lfht_test_node_init(struct lfht_test_node *node)
                        cds_lfht_next(test_ht, &iter);
                if (iter.node)
                        hash = to_test_node(iter.node)->orig_hash;
+
+               node->dup = test_rand_get_bits(2);
        }
 
        node->orig_hash = hash;
@@ -427,6 +430,15 @@ void lfht_test_node_init(struct lfht_test_node *node)
 static
 int test_match(struct cds_lfht_node *node, void *key)
 {
+       struct lfht_test_node *u = to_test_node(node), *v = key;
+
+       if (caa_likely(u->hash != v->hash))
+               return 0;
+
+       /* 56.25% (100% * 9 / 16) duplicated when hash value are the same */
+       if (u->dup && u->dup == v->dup)
+               return 1;
+
        return 0;
 }
 
-- 
1.7.4.4


_______________________________________________
ltt-dev mailing list
[email protected]
http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev

Reply via email to