X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Ftest_rwlock.c;h=34d8c0727b271aab00241173154c9c8f825fc4a1;hp=4629a44b5b2e87c601b157150c769ca8918857e6;hb=4d0d66bb795d1ed938e11a97a4e5f71326e20c71;hpb=31b598e0bb2fde285afa63986613e632e98b104d diff --git a/tests/test_rwlock.c b/tests/test_rwlock.c index 4629a44..34d8c07 100644 --- a/tests/test_rwlock.c +++ b/tests/test_rwlock.c @@ -3,7 +3,7 @@ * * Userspace RCU library - test program * - * 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 @@ -85,7 +88,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; @@ -198,11 +201,11 @@ void *thr_reader(void *_count) for (;;) { pthread_rwlock_rdlock(&lock); assert(test_array.a == 8); - if (unlikely(rduration)) + if (caa_unlikely(rduration)) loop_sleep(rduration); pthread_rwlock_unlock(&lock); nr_reads++; - if (unlikely(!test_duration_read())) + if (caa_unlikely(!test_duration_read())) break; } @@ -225,19 +228,19 @@ void *thr_writer(void *_count) while (!test_go) { } - smp_mb(); + cmm_smp_mb(); for (;;) { pthread_rwlock_wrlock(&lock); test_array.a = 0; test_array.a = 8; - if (unlikely(wduration)) + if (caa_unlikely(wduration)) loop_sleep(wduration); pthread_rwlock_unlock(&lock); nr_writes++; - if (unlikely(!test_duration_write())) + if (caa_unlikely(!test_duration_write())) break; - if (unlikely(wdelay)) + if (caa_unlikely(wdelay)) loop_sleep(wdelay); } @@ -274,7 +277,7 @@ int main(int argc, char **argv) show_usage(argc, argv); return -1; } - smp_mb(); + cmm_smp_mb(); err = sscanf(argv[1], "%u", &nr_readers); if (err != 1) { @@ -370,7 +373,7 @@ int main(int argc, char **argv) exit(1); } - smp_mb(); + cmm_smp_mb(); test_go = 1; @@ -393,10 +396,10 @@ int main(int argc, char **argv) printf_verbose("total number of reads : %llu, writes %llu\n", tot_reads, tot_writes); - printf("SUMMARY %-25s testdur %4lu nr_readers %3u rdur %6lu " + printf("SUMMARY %-25s testdur %4lu nr_readers %3u rdur %6lu wdur %6lu " "nr_writers %3u " "wdelay %6lu nr_reads %12llu nr_writes %12llu nr_ops %12llu\n", - argv[0], duration, nr_readers, rduration, + argv[0], duration, nr_readers, rduration, wduration, nr_writers, wdelay, tot_reads, tot_writes, tot_reads + tot_writes);