From: khizmax Date: Sat, 18 Mar 2017 07:24:22 +0000 (+0300) Subject: Added different bit_reversal algo to SplitListSet/Map stress test X-Git-Tag: v2.3.0~96 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=dab7e44fb97097a9d7ccbed46e067a30b03340a7;p=libcds.git Added different bit_reversal algo to SplitListSet/Map stress test --- diff --git a/test/stress/map/map_type_split_list.h b/test/stress/map/map_type_split_list.h index b26d6748..f2038f44 100644 --- a/test/stress/map/map_type_split_list.h +++ b/test/stress/map/map_type_split_list.h @@ -164,6 +164,21 @@ namespace map { typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Michael_dyn_cmp > SplitList_Michael_RCU_SHT_dyn_cmp; #endif + struct traits_SplitList_Michael_dyn_cmp_swar: public traits_SplitList_Michael_dyn_cmp + { + typedef cds::algo::bit_reversal::swar bit_reversal; + }; + typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_HP_dyn_cmp_swar; + typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_DHP_dyn_cmp_swar; + typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_NOGC_dyn_cmp_swar; + typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_GPI_dyn_cmp_swar; + typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_GPB_dyn_cmp_swar; + typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_GPT_dyn_cmp_swar; +#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED + typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_SHB_dyn_cmp_swar; + typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_SHT_dyn_cmp_swar; +#endif + struct traits_SplitList_Michael_dyn_cmp_stat : public traits_SplitList_Michael_dyn_cmp { typedef cc::split_list::stat<> stat; @@ -465,16 +480,6 @@ namespace map { {}; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_HP_dyn_cmp; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_DHP_dyn_cmp; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_NOGC_dyn_cmp; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_GPI_dyn_cmp; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_GPB_dyn_cmp; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_GPT_dyn_cmp; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_SHB_dyn_cmp; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_SHT_dyn_cmp; -#endif -#endif struct traits_SplitList_Iterable_dyn_cmp_stat : public traits_SplitList_Iterable_dyn_cmp { @@ -486,16 +491,6 @@ namespace map { }; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_HP_dyn_cmp_stat; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_DHP_dyn_cmp_stat; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat> SplitList_Iterable_NOGC_dyn_cmp_stat; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_GPI_dyn_cmp_stat; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_GPB_dyn_cmp_stat; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_GPT_dyn_cmp_stat; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_SHB_dyn_cmp_stat; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_SHT_dyn_cmp_stat; -#endif -#endif struct traits_SplitList_Iterable_dyn_cmp_seqcst: public cc::split_list::make_traits< cc::split_list::ordered_list @@ -511,16 +506,6 @@ namespace map { {}; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_HP_dyn_cmp_seqcst; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_DHP_dyn_cmp_seqcst; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst> SplitList_Iterable_NOGC_dyn_cmp_seqcst; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_GPI_dyn_cmp_seqcst; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_GPB_dyn_cmp_seqcst; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_GPT_dyn_cmp_seqcst; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_SHB_dyn_cmp_seqcst; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_SHT_dyn_cmp_seqcst; -#endif -#endif struct traits_SplitList_Iterable_st_cmp: public cc::split_list::make_traits< cc::split_list::ordered_list @@ -535,16 +520,6 @@ namespace map { {}; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_HP_st_cmp; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_DHP_st_cmp; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_st_cmp> SplitList_Iterable_NOGC_st_cmp; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_GPI_st_cmp; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_GPB_st_cmp; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_GPT_st_cmp; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_SHB_st_cmp; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_SHT_st_cmp; -#endif -#endif //HP + less struct traits_SplitList_Iterable_dyn_less: public cc::split_list::make_traits< @@ -559,17 +534,6 @@ namespace map { {}; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_HP_dyn_less; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_DHP_dyn_less; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_dyn_less> SplitList_Iterable_NOGC_dyn_less; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_GPI_dyn_less; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_GPB_dyn_less; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_GPT_dyn_less; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_SHB_dyn_less; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_SHT_dyn_less; -#endif -#endif - struct traits_SplitList_Iterable_st_less: public cc::split_list::make_traits< cc::split_list::ordered_list @@ -584,16 +548,6 @@ namespace map { {}; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_HP_st_less; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_DHP_st_less; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_st_less> SplitList_Iterable_NOGC_st_less; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_GPI_st_less; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_GPB_st_less; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_GPT_st_less; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_SHB_st_less; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_SHT_st_less; -#endif -#endif struct traits_SplitList_Iterable_st_less_stat : traits_SplitList_Iterable_st_less { @@ -605,17 +559,6 @@ namespace map { }; typedef SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_HP_st_less_stat; typedef SplitListMap< cds::gc::DHP, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_DHP_st_less_stat; -#if 0 - typedef SplitListMap< cds::gc::nogc, Key, Value, traits_SplitList_Iterable_st_less_stat> SplitList_Iterable_NOGC_st_less_stat; - typedef SplitListMap< rcu_gpi, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_GPI_st_less_stat; - typedef SplitListMap< rcu_gpb, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_GPB_st_less_stat; - typedef SplitListMap< rcu_gpt, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_GPT_st_less_stat; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListMap< rcu_shb, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_SHB_st_less_stat; - typedef SplitListMap< rcu_sht, Key, Value, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_SHT_st_less_stat; -#endif -#endif - }; template @@ -716,6 +659,7 @@ namespace map { #if defined(CDS_STRESS_TEST_LEVEL) && CDS_STRESS_TEST_LEVEL == 1 # define CDSSTRESS_SplitListMap_HP_1( fixture, test_case, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_DHP_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_DHP_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_HP_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_HP_st_cmp, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_DHP_dyn_less, key_type, value_type ) \ @@ -729,8 +673,8 @@ namespace map { CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Lazy_DHP_st_less_stat, key_type, value_type ) \ # define CDSSTRESS_SplitListMap_RCU_1( fixture, test_case, key_type, value_type ) \ - CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPI_dyn_cmp_stat, key_type, value_type ) \ + CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPT_dyn_cmp, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPT_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPI_st_cmp, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPT_st_cmp, key_type, value_type ) \ @@ -762,6 +706,7 @@ namespace map { #define CDSSTRESS_SplitListMap_HP( fixture, test_case, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_HP_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_HP_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_DHP_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_DHP_st_cmp, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_HP_dyn_less, key_type, value_type ) \ @@ -778,7 +723,8 @@ namespace map { #define CDSSTRESS_SplitListMap_RCU( fixture, test_case, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPI_dyn_cmp, key_type, value_type ) \ - CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPT_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPB_st_cmp, key_type, value_type ) \ CDSSTRESS_SplitListMap_case( fixture, test_case, SplitList_Michael_RCU_GPI_dyn_less, key_type, value_type ) \ diff --git a/test/stress/set/set_type_split_list.h b/test/stress/set/set_type_split_list.h index aa12be45..9a5f74c8 100644 --- a/test/stress/set/set_type_split_list.h +++ b/test/stress/set/set_type_split_list.h @@ -117,6 +117,20 @@ namespace set { typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Michael_dyn_cmp > SplitList_Michael_RCU_SHT_dyn_cmp; #endif + struct traits_SplitList_Michael_dyn_cmp_swar: public traits_SplitList_Michael_dyn_cmp + { + typedef cds::algo::bit_reversal::swar bit_reversal; + }; + typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_HP_dyn_cmp_swar; + typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_DHP_dyn_cmp_swar; + typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_GPI_dyn_cmp_swar; + typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_GPB_dyn_cmp_swar; + typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_GPT_dyn_cmp_swar; +#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED + typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_SHB_dyn_cmp_swar; + typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Michael_dyn_cmp_swar > SplitList_Michael_RCU_SHT_dyn_cmp_swar; +#endif + struct traits_SplitList_Michael_dyn_cmp_stat : public cc::split_list::make_traits< cc::split_list::ordered_list @@ -417,15 +431,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_HP_dyn_cmp; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_DHP_dyn_cmp; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_GPI_dyn_cmp; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_GPB_dyn_cmp; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_GPT_dyn_cmp; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_SHB_dyn_cmp; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_dyn_cmp > SplitList_Iterable_RCU_SHT_dyn_cmp; -#endif -#endif struct traits_SplitList_Iterable_dyn_cmp_stat: public cc::split_list::make_traits< @@ -442,15 +447,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_HP_dyn_cmp_stat; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_DHP_dyn_cmp_stat; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_GPI_dyn_cmp_stat; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_GPB_dyn_cmp_stat; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_GPT_dyn_cmp_stat; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_SHB_dyn_cmp_stat; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_dyn_cmp_stat > SplitList_Iterable_RCU_SHT_dyn_cmp_stat; -#endif -#endif struct traits_SplitList_Iterable_dyn_cmp_seqcst : public cc::split_list::make_traits< @@ -467,15 +463,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_HP_dyn_cmp_seqcst; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_DHP_dyn_cmp_seqcst; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_GPI_dyn_cmp_seqcst; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_GPB_dyn_cmp_seqcst; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_GPT_dyn_cmp_seqcst; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_SHB_dyn_cmp_seqcst; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_dyn_cmp_seqcst > SplitList_Iterable_RCU_SHT_dyn_cmp_seqcst; -#endif -#endif struct traits_SplitList_Iterable_st_cmp : public cc::split_list::make_traits< @@ -491,15 +478,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_HP_st_cmp; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_DHP_st_cmp; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_GPI_st_cmp; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_GPB_st_cmp; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_GPT_st_cmp; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_SHB_st_cmp; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_st_cmp > SplitList_Iterable_RCU_SHT_st_cmp; -#endif -#endif //HP + less struct traits_SplitList_Iterable_dyn_less : @@ -515,15 +493,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_HP_dyn_less; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_DHP_dyn_less; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_GPI_dyn_less; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_GPB_dyn_less; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_GPT_dyn_less; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_SHB_dyn_less; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_dyn_less > SplitList_Iterable_RCU_SHT_dyn_less; -#endif -#endif struct traits_SplitList_Iterable_st_less : public cc::split_list::make_traits< @@ -539,15 +508,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_HP_st_less; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_DHP_st_less; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_GPI_st_less; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_GPB_st_less; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_GPT_st_less; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_SHB_st_less; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_st_less > SplitList_Iterable_RCU_SHT_st_less; -#endif -#endif struct traits_SplitList_Iterable_st_less_stat : public cc::split_list::make_traits< @@ -565,15 +525,6 @@ namespace set { {}; typedef SplitListSet< cds::gc::HP, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_HP_st_less_stat; typedef SplitListSet< cds::gc::DHP, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_DHP_st_less_stat; -#if 0 - typedef SplitListSet< rcu_gpi, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_GPI_st_less_stat; - typedef SplitListSet< rcu_gpb, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_GPB_st_less_stat; - typedef SplitListSet< rcu_gpt, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_GPT_st_less_stat; -#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED - typedef SplitListSet< rcu_shb, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_SHB_st_less_stat; - typedef SplitListSet< rcu_sht, key_val, traits_SplitList_Iterable_st_less_stat > SplitList_Iterable_RCU_SHT_st_less_stat; -#endif -#endif }; @@ -666,6 +617,7 @@ namespace set { #if defined(CDS_STRESS_TEST_LEVEL) && CDS_STRESS_TEST_LEVEL == 1 # define CDSSTRESS_SplitListSet_HP_1( fixture, test_case, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_DHP_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_DHP_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_HP_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_HP_st_cmp, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_DHP_dyn_less, key_type, value_type ) \ @@ -680,7 +632,7 @@ namespace set { CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Lazy_HP_st_less_stat, key_type, value_type ) \ # define CDSSTRESS_SplitListSet_RCU_1( fixture, test_case, key_type, value_type ) \ - CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPT_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPI_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPT_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPI_st_cmp, key_type, value_type ) \ @@ -710,6 +662,7 @@ namespace set { #define CDSSTRESS_SplitListSet_HP( fixture, test_case, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_HP_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_HP_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_DHP_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_DHP_st_cmp, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_HP_dyn_less, key_type, value_type ) \ @@ -727,6 +680,8 @@ namespace set { #define CDSSTRESS_SplitListSet_RCU( fixture, test_case, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPI_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp, key_type, value_type ) \ + CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp_swar, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPT_dyn_cmp, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPB_dyn_cmp_stat, key_type, value_type ) \ CDSSTRESS_SplitListSet_case( fixture, test_case, SplitList_Michael_RCU_GPB_st_cmp, key_type, value_type ) \