From c6f292ccf76902b0ebdf166b412539abda04984a Mon Sep 17 00:00:00 2001 From: Peizhao Ou Date: Thu, 25 Jan 2018 11:50:01 -0800 Subject: [PATCH] Adds parameter for both RCU and HP based map test cases --- .../insdelfind/map_insdelfind.cpp | 90 +++++++++++++------ .../insdelfind/map_insdelfind.h | 73 +++++++++++---- .../map_insdelfind_ellentree_hp.cpp | 2 +- .../map_insdelfind_ellentree_rcu.cpp | 2 +- .../map_insdelfind_feldman_hashset_hp.cpp | 2 +- .../map_insdelfind_feldman_hashset_rcu.cpp | 2 +- .../insdelfind/map_insdelfind_michael_hp.cpp | 2 +- .../insdelfind/map_insdelfind_michael_rcu.cpp | 2 +- .../insdelfind/map_insdelfind_skip_hp.cpp | 2 +- .../insdelfind/map_insdelfind_skip_rcu.cpp | 2 +- .../insdelfind/map_insdelfind_split_hp.cpp | 4 +- .../insdelfind/map_insdelfind_split_rcu.cpp | 2 +- 12 files changed, 130 insertions(+), 55 deletions(-) diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.cpp index 63fe8762..50ff406f 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.cpp @@ -36,12 +36,19 @@ namespace map { size_t Map_InsDelFind::s_nThreadCount = 8; size_t Map_InsDelFind::s_nPassCount = 100; - size_t Map_InsDelFind::s_nFeldmanPassCount = 100; size_t Map_InsDelFind::s_nBronsonAVLTreeMapPassCount = 100; - size_t Map_InsDelFind::s_nEllenBinTreeMapPassCount = 100; - size_t Map_InsDelFind::s_nMichaelMapPassCount = 100; - size_t Map_InsDelFind::s_nSkipListMapPassCount = 100; - size_t Map_InsDelFind::s_nSplitListMapPassCount = 100; + + size_t Map_InsDelFind::s_nHpFeldmanPassCount = 100; + size_t Map_InsDelFind::s_nHpEllenBinTreeMapPassCount = 100; + size_t Map_InsDelFind::s_nHpMichaelMapPassCount = 100; + size_t Map_InsDelFind::s_nHpSkipListMapPassCount = 100; + size_t Map_InsDelFind::s_nHpSplitListMapPassCount = 100; + + size_t Map_InsDelFind::s_nRcuFeldmanPassCount = 100; + size_t Map_InsDelFind::s_nRcuEllenBinTreeMapPassCount = 100; + size_t Map_InsDelFind::s_nRcuMichaelMapPassCount = 100; + size_t Map_InsDelFind::s_nRcuSkipListMapPassCount = 100; + size_t Map_InsDelFind::s_nRcuSplitListMapPassCount = 100; size_t Map_InsDelFind::s_nMaxLoadFactor = 8; unsigned int Map_InsDelFind::s_nInsertPercentage = 5; @@ -76,35 +83,60 @@ namespace map { if (s_nPassCount == 0) s_nPassCount = 500; - s_nFeldmanPassCount = - cfg.get_size_t("FeldmanPassCount", s_nFeldmanPassCount); - if (s_nFeldmanPassCount == 0) - s_nFeldmanPassCount = 500; - s_nBronsonAVLTreeMapPassCount = cfg.get_size_t( "BronsonAVLTreeMapPassCount", s_nBronsonAVLTreeMapPassCount); if (s_nBronsonAVLTreeMapPassCount == 0) s_nBronsonAVLTreeMapPassCount = 500; - s_nEllenBinTreeMapPassCount = cfg.get_size_t( - "EllenBinTreeMapPassCount", s_nEllenBinTreeMapPassCount); - if (s_nEllenBinTreeMapPassCount == 0) - s_nEllenBinTreeMapPassCount = 500; - - s_nMichaelMapPassCount = - cfg.get_size_t("MichaelMapPassCount", s_nMichaelMapPassCount); - if (s_nMichaelMapPassCount == 0) - s_nMichaelMapPassCount = 500; - - s_nSkipListMapPassCount = - cfg.get_size_t("SkipListMapPassCount", s_nSkipListMapPassCount); - if (s_nSkipListMapPassCount == 0) - s_nSkipListMapPassCount = 500; - - s_nSplitListMapPassCount = - cfg.get_size_t("SplitListMapPassCount", s_nSplitListMapPassCount); - if (s_nSplitListMapPassCount == 0) - s_nSplitListMapPassCount = 500; + s_nHpFeldmanPassCount = + cfg.get_size_t("HpFeldmanPassCount", s_nHpFeldmanPassCount); + if (s_nHpFeldmanPassCount == 0) + s_nHpFeldmanPassCount = 500; + + s_nRcuFeldmanPassCount = + cfg.get_size_t("RcuFeldmanPassCount", s_nRcuFeldmanPassCount); + if (s_nRcuFeldmanPassCount == 0) + s_nRcuFeldmanPassCount = 500; + + s_nHpEllenBinTreeMapPassCount = cfg.get_size_t( + "HpEllenBinTreeMapPassCount", s_nHpEllenBinTreeMapPassCount); + if (s_nHpEllenBinTreeMapPassCount == 0) + s_nHpEllenBinTreeMapPassCount = 500; + + s_nRcuEllenBinTreeMapPassCount = cfg.get_size_t( + "RcuEllenBinTreeMapPassCount", s_nRcuEllenBinTreeMapPassCount); + if (s_nRcuEllenBinTreeMapPassCount == 0) + s_nRcuEllenBinTreeMapPassCount = 500; + + s_nHpMichaelMapPassCount = + cfg.get_size_t("HpMichaelMapPassCount", s_nHpMichaelMapPassCount); + if (s_nHpMichaelMapPassCount == 0) + s_nHpMichaelMapPassCount = 500; + + s_nRcuMichaelMapPassCount = + cfg.get_size_t("RcuMichaelMapPassCount", s_nRcuMichaelMapPassCount); + if (s_nRcuMichaelMapPassCount == 0) + s_nRcuMichaelMapPassCount = 500; + + s_nHpSkipListMapPassCount = + cfg.get_size_t("HpSkipListMapPassCount", s_nHpSkipListMapPassCount); + if (s_nHpSkipListMapPassCount == 0) + s_nHpSkipListMapPassCount = 500; + + s_nRcuSkipListMapPassCount = + cfg.get_size_t("RcuSkipListMapPassCount", s_nRcuSkipListMapPassCount); + if (s_nRcuSkipListMapPassCount == 0) + s_nRcuSkipListMapPassCount = 500; + + s_nHpSplitListMapPassCount = + cfg.get_size_t("HpSplitListMapPassCount", s_nHpSplitListMapPassCount); + if (s_nHpSplitListMapPassCount == 0) + s_nHpSplitListMapPassCount = 500; + + s_nRcuSplitListMapPassCount = + cfg.get_size_t("RcuSplitListMapPassCount", s_nRcuSplitListMapPassCount); + if (s_nRcuSplitListMapPassCount == 0) + s_nRcuSplitListMapPassCount = 500; s_nMaxLoadFactor = cfg.get_size_t( "MaxLoadFactor", s_nMaxLoadFactor ); if ( s_nMaxLoadFactor == 0 ) diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.h b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.h index 3eeaa532..165a1d14 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.h +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind.h @@ -40,11 +40,19 @@ namespace map { static size_t s_nPassCount; static size_t s_nBronsonAVLTreeMapPassCount; - static size_t s_nEllenBinTreeMapPassCount; - static size_t s_nFeldmanPassCount; - static size_t s_nMichaelMapPassCount; - static size_t s_nSkipListMapPassCount; - static size_t s_nSplitListMapPassCount; + + static size_t s_nHpEllenBinTreeMapPassCount; + static size_t s_nHpFeldmanPassCount; + static size_t s_nHpMichaelMapPassCount; + static size_t s_nHpSkipListMapPassCount; + static size_t s_nHpSplitListMapPassCount; + + static size_t s_nRcuEllenBinTreeMapPassCount; + static size_t s_nRcuFeldmanPassCount; + static size_t s_nRcuMichaelMapPassCount; + static size_t s_nRcuSkipListMapPassCount; + static size_t s_nRcuSplitListMapPassCount; + static size_t s_nThreadCount; // thread count static size_t s_nMaxLoadFactor; // maximum load factor @@ -211,23 +219,44 @@ namespace map { } template - void run_ellen_bin_tree() { + void run_ellen_bin_tree_hp() { + Map_InsDelFind::s_nPassCount = + Map_InsDelFind::s_nHpEllenBinTreeMapPassCount; + run_test(); + } + + template + void run_skip_list_hp() { + Map_InsDelFind::s_nPassCount = + Map_InsDelFind::s_nHpSkipListMapPassCount; + run_test(); + } + + template + void run_feldman_hp() { + Map_InsDelFind::s_nPassCount = + Map_InsDelFind::s_nHpFeldmanPassCount; + run_test(); + } + + template + void run_ellen_bin_tree_rcu() { Map_InsDelFind::s_nPassCount = - Map_InsDelFind::s_nEllenBinTreeMapPassCount; + Map_InsDelFind::s_nRcuEllenBinTreeMapPassCount; run_test(); } template - void run_skip_list() { + void run_skip_list_rcu() { Map_InsDelFind::s_nPassCount = - Map_InsDelFind::s_nSkipListMapPassCount; + Map_InsDelFind::s_nRcuSkipListMapPassCount; run_test(); } template - void run_feldman() { + void run_feldman_rcu() { Map_InsDelFind::s_nPassCount = - Map_InsDelFind::s_nFeldmanPassCount; + Map_InsDelFind::s_nRcuFeldmanPassCount; run_test(); } }; @@ -245,16 +274,30 @@ namespace map { } template - void run_michael() { + void run_michael_hp() { + Map_InsDelFind::s_nPassCount = + Map_InsDelFind::s_nHpMichaelMapPassCount; + Map_InsDelFind_LF::run_test(); + } + + template + void run_split_list_hp() { + Map_InsDelFind::s_nPassCount = + Map_InsDelFind::s_nHpSplitListMapPassCount; + Map_InsDelFind_LF::run_test(); + } + + template + void run_michael_rcu() { Map_InsDelFind::s_nPassCount = - Map_InsDelFind::s_nMichaelMapPassCount; + Map_InsDelFind::s_nRcuMichaelMapPassCount; Map_InsDelFind_LF::run_test(); } template - void run_split_list() { + void run_split_list_rcu() { Map_InsDelFind::s_nPassCount = - Map_InsDelFind::s_nSplitListMapPassCount; + Map_InsDelFind::s_nRcuSplitListMapPassCount; Map_InsDelFind_LF::run_test(); } diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_hp.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_hp.cpp index 7372eee5..88ba4d67 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_hp.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_hp.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_EllenBinTreeMap_HP( Map_InsDelFind, run_ellen_bin_tree, size_t, size_t ) + CDSSTRESS_EllenBinTreeMap_HP( Map_InsDelFind, run_ellen_bin_tree_hp, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_rcu.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_rcu.cpp index b5db47fe..43306b5b 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_rcu.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_ellentree_rcu.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_EllenBinTreeMap_RCU( Map_InsDelFind, run_ellen_bin_tree, size_t, size_t ) + CDSSTRESS_EllenBinTreeMap_RCU( Map_InsDelFind, run_ellen_bin_tree_rcu, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_hp.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_hp.cpp index dce3ebbe..0787b0cb 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_hp.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_hp.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_FeldmanHashMap_fixed_HP( Map_InsDelFind, run_feldman, size_t, size_t ) + CDSSTRESS_FeldmanHashMap_fixed_HP( Map_InsDelFind, run_feldman_hp, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_rcu.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_rcu.cpp index 0122f166..2e6ecfe5 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_rcu.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_feldman_hashset_rcu.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_FeldmanHashMap_fixed_RCU( Map_InsDelFind, run_feldman, size_t, size_t ) + CDSSTRESS_FeldmanHashMap_fixed_RCU( Map_InsDelFind, run_feldman_rcu, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_hp.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_hp.cpp index 4083ab6d..61b8bd2d 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_hp.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_hp.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_MichaelMap_HP( Map_InsDelFind_LF, run_michael, size_t, size_t ) + CDSSTRESS_MichaelMap_HP( Map_InsDelFind_LF, run_michael_hp, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_rcu.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_rcu.cpp index 0874b0ab..309c1e04 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_rcu.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_michael_rcu.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_MichaelMap_RCU( Map_InsDelFind_LF, run_michael, size_t, size_t ) + CDSSTRESS_MichaelMap_RCU( Map_InsDelFind_LF, run_michael_rcu, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_hp.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_hp.cpp index a78c73f4..329a773d 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_hp.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_hp.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_SkipListMap_HP( Map_InsDelFind, run_skip_list, size_t, size_t ) + CDSSTRESS_SkipListMap_HP( Map_InsDelFind, run_skip_list_hp, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_rcu.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_rcu.cpp index d73fa79c..19d10850 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_rcu.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_skip_rcu.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_SkipListMap_RCU( Map_InsDelFind, run_skip_list, size_t, size_t ) + CDSSTRESS_SkipListMap_RCU( Map_InsDelFind, run_skip_list_rcu, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_hp.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_hp.cpp index 625afca4..0c501bc9 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_hp.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_hp.cpp @@ -33,7 +33,7 @@ namespace map { - CDSSTRESS_SplitListMap_HP( Map_InsDelFind_LF, run_split_list, size_t, size_t ) - CDSSTRESS_SplitListIterableMap( Map_InsDelFind_LF, run_split_list, size_t, size_t ) + CDSSTRESS_SplitListMap_HP( Map_InsDelFind_LF, run_split_list_hp, size_t, size_t ) + CDSSTRESS_SplitListIterableMap( Map_InsDelFind_LF, run_split_list_hp, size_t, size_t ) } // namespace map diff --git a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_rcu.cpp b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_rcu.cpp index bfa4da84..9da9c8a9 100644 --- a/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_rcu.cpp +++ b/test/stress/sequential/sequential-map/insdelfind/map_insdelfind_split_rcu.cpp @@ -33,6 +33,6 @@ namespace map { - CDSSTRESS_SplitListMap_RCU( Map_InsDelFind_LF, run_split_list, size_t, size_t ) + CDSSTRESS_SplitListMap_RCU( Map_InsDelFind_LF, run_split_list_rcu, size_t, size_t ) } // namespace map -- 2.34.1