X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Ftest_urcu_hash_rw.c;h=8802b9cd0a621d1d07fee0f4e7bfe368f0a287b6;hp=a789236ecb0c67f875d1f8c0d17cbb28d429d7d4;hb=98f483d24f69785a7fb2e988f1053c34e84a4e61;hpb=bd252a04bbbb163aa4d8864b1e1e5a3a4d9d0892 diff --git a/tests/test_urcu_hash_rw.c b/tests/test_urcu_hash_rw.c index a789236..8802b9c 100644 --- a/tests/test_urcu_hash_rw.c +++ b/tests/test_urcu_hash_rw.c @@ -65,8 +65,10 @@ void *test_hash_rw_thr_reader(void *_count) struct lfht_test_node *node; struct cds_lfht_iter iter; - printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n", - "reader", pthread_self(), (unsigned long)gettid()); + printf_verbose("thread_begin %s, tid %lu\n", + "reader", urcu_get_thread_id()); + + URCU_TLS(rand_lookup) = urcu_get_thread_id() ^ time(NULL); set_affinity(); @@ -92,7 +94,7 @@ void *test_hash_rw_thr_reader(void *_count) } else { URCU_TLS(lookup_ok)++; } - debug_yield_read(); + rcu_debug_yield_read(); if (caa_unlikely(rduration)) loop_sleep(rduration); rcu_read_unlock(); @@ -106,10 +108,11 @@ void *test_hash_rw_thr_reader(void *_count) rcu_unregister_thread(); *count = URCU_TLS(nr_reads); - printf_verbose("thread_end %s, thread id : %lx, tid %lu\n", - "reader", pthread_self(), (unsigned long)gettid()); - printf_verbose("readid : %lx, lookupfail %lu, lookupok %lu\n", - pthread_self(), URCU_TLS(lookup_fail), + printf_verbose("thread_end %s, tid %lu\n", + "reader", urcu_get_thread_id()); + printf_verbose("read tid : %lx, lookupfail %lu, lookupok %lu\n", + urcu_get_thread_id(), + URCU_TLS(lookup_fail), URCU_TLS(lookup_ok)); return ((void*)1); @@ -123,8 +126,10 @@ void *test_hash_rw_thr_writer(void *_count) struct wr_count *count = _count; int ret; - printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n", - "writer", pthread_self(), (unsigned long)gettid()); + printf_verbose("thread_begin %s, tid %lu\n", + "writer", urcu_get_thread_id()); + + URCU_TLS(rand_lookup) = urcu_get_thread_id() ^ time(NULL); set_affinity(); @@ -208,11 +213,13 @@ void *test_hash_rw_thr_writer(void *_count) rcu_unregister_thread(); - printf_verbose("thread_end %s, thread id : %lx, tid %lu\n", - "writer", pthread_self(), (unsigned long)gettid()); - printf_verbose("info id %lx: nr_add %lu, nr_addexist %lu, nr_del %lu, " - "nr_delnoent %lu\n", pthread_self(), URCU_TLS(nr_add), - URCU_TLS(nr_addexist), URCU_TLS(nr_del), + printf_verbose("thread_end %s, tid %lu\n", + "writer", urcu_get_thread_id()); + printf_verbose("info tid %lu: nr_add %lu, nr_addexist %lu, nr_del %lu, " + "nr_delnoent %lu\n", urcu_get_thread_id(), + URCU_TLS(nr_add), + URCU_TLS(nr_addexist), + URCU_TLS(nr_del), URCU_TLS(nr_delnoent)); count->update_ops = URCU_TLS(nr_writes); count->add = URCU_TLS(nr_add); @@ -231,6 +238,8 @@ int test_hash_rw_populate_hash(void) printf("Starting rw test\n"); + URCU_TLS(rand_lookup) = urcu_get_thread_id() ^ time(NULL); + if ((add_unique || add_replace) && init_populate * 10 > init_pool_size) { printf("WARNING: required to populate %lu nodes (-k), but random " "pool is quite small (%lu values) and we are in add_unique (-u) or add_replace (-s) mode. Try with a "