X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Ftest_urcu_defer.c;h=7d71f1029f45f0d97d933e6d85a97ded23dd85ef;hb=65fcc7e9957a1658327acd121c3d8c3b36f4a94e;hp=e15c4668c0c1cb200f616d7dd29f1ade71375fa5;hpb=a50a7b4333a5039f1471c0b7cfbfb3d6dc5379fb;p=urcu.git diff --git a/tests/test_urcu_defer.c b/tests/test_urcu_defer.c index e15c466..7d71f10 100644 --- a/tests/test_urcu_defer.c +++ b/tests/test_urcu_defer.c @@ -3,7 +3,7 @@ * * Userspace RCU library - test program (with automatic reclamation) * - * Copyright February 2009 - Mathieu Desnoyers + * Copyright February 2009 - Mathieu Desnoyers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,12 +31,15 @@ #include #include #include -#include #include #include #include +#ifdef __linux__ +#include +#endif + /* hardcoded number of CPUs */ #define NR_CPUS 16384 @@ -84,7 +87,7 @@ static unsigned long wduration; static inline void loop_sleep(unsigned long l) { while(l-- != 0) - cpu_relax(); + caa_cpu_relax(); } static int verbose_mode; @@ -156,7 +159,7 @@ static unsigned long long __thread nr_writes; static unsigned long long __thread nr_reads; static -unsigned long long __attribute__((aligned(CACHE_LINE_SIZE))) *tot_nr_writes; +unsigned long long __attribute__((aligned(CAA_CACHE_LINE_SIZE))) *tot_nr_writes; static unsigned int nr_readers; static unsigned int nr_writers; @@ -199,7 +202,7 @@ void *thr_reader(void *_count) while (!test_go) { } - smp_mb(); + cmm_smp_mb(); for (;;) { rcu_read_lock(); @@ -236,18 +239,23 @@ void *thr_writer(void *data) { unsigned long wtidx = (unsigned long)data; struct test_array *new, *old = NULL; + int ret; printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n", "writer", pthread_self(), (unsigned long)gettid()); set_affinity(); - rcu_defer_register_thread(); + ret = rcu_defer_register_thread(); + if (ret) { + printf("Error in rcu_defer_register_thread\n"); + exit(-1); + } while (!test_go) { } - smp_mb(); + cmm_smp_mb(); for (;;) { new = malloc(sizeof(*new)); @@ -400,7 +408,7 @@ int main(int argc, char **argv) exit(1); } - smp_mb(); + cmm_smp_mb(); test_go = 1;