X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Ftest_urcu_hash.c;h=376cd9721094cfac251e37883d85149468798735;hb=98808fb1581997fc7c9ff1bd6a486ceb27932be1;hp=fc2cfb286423228c43e96e1b3d27cd29b44b03b9;hpb=1475579ca651164ea74eb0c9f727baad991098af;p=urcu.git diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c index fc2cfb2..376cd97 100644 --- a/tests/test_urcu_hash.c +++ b/tests/test_urcu_hash.c @@ -46,6 +46,21 @@ /* hardcoded number of CPUs */ #define NR_CPUS 16384 +/* For testing */ +#define POISON_FREE + +#ifdef POISON_FREE +#define poison_free(ptr) \ + do { \ + memset(ptr, 0x42, sizeof(*(ptr))); \ + free(ptr); \ + } while (0) +#else +#define poison_free(ptr) free(ptr) +#endif + + + #if defined(_syscall0) _syscall0(pid_t, gettid) #elif defined(__NR_gettid) @@ -104,6 +119,7 @@ static unsigned long rduration; static unsigned long init_hash_size = DEFAULT_HASH_SIZE; static unsigned long init_populate; static unsigned long rand_pool = DEFAULT_RAND_POOL; +static int opt_auto_resize; static int add_only, add_unique; static inline void loop_sleep(unsigned long l) @@ -554,6 +570,7 @@ void show_usage(int argc, char **argv) printf(" [-u] Uniquify add."); printf(" [-i] Add only (no removal)."); printf(" [-k nr_nodes] Number of nodes to insert initially."); + printf(" [-A] Automatically resize hash table."); printf("\n"); } @@ -656,6 +673,9 @@ int main(int argc, char **argv) case 'k': init_populate = atol(argv[++i]); break; + case 'A': + opt_auto_resize = 1; + break; } } @@ -697,7 +717,9 @@ int main(int argc, char **argv) count_reader = malloc(sizeof(*count_reader) * nr_readers); count_writer = malloc(sizeof(*count_writer) * nr_writers); test_ht = cds_lfht_new(test_hash, test_compare, 0x42UL, - init_hash_size, call_rcu, synchronize_rcu); + init_hash_size, + opt_auto_resize ? CDS_LFHT_AUTO_RESIZE : 0, + call_rcu, synchronize_rcu); ret = populate_hash(); assert(!ret); err = create_all_cpu_call_rcu_data(0);