X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Fbenchmark%2Ftest_urcu_timing.c;h=6ab390d4c5b85c6cb30d5c0f2c8a07189cc4c1be;hb=HEAD;hp=e31b676ca506adf3dac9d20bdee7c6fba01a47fb;hpb=f5ab766ee2c8300cb00ca5878b1cb464f960a66d;p=urcu.git diff --git a/tests/benchmark/test_urcu_timing.c b/tests/benchmark/test_urcu_timing.c index e31b676..6ab390d 100644 --- a/tests/benchmark/test_urcu_timing.c +++ b/tests/benchmark/test_urcu_timing.c @@ -1,23 +1,9 @@ +// SPDX-FileCopyrightText: 2009 Mathieu Desnoyers +// +// SPDX-License-Identifier: GPL-2.0-or-later + /* - * test_urcu.c - * * Userspace RCU library - test program - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -28,9 +14,10 @@ #include #include #include -#include #include + #include +#include #include "thread-id.h" @@ -39,6 +26,7 @@ pthread_mutex_t rcu_copy_mutex = PTHREAD_MUTEX_INITIALIZER; +static void rcu_copy_mutex_lock(void) { int ret; @@ -49,6 +37,7 @@ void rcu_copy_mutex_lock(void) } } +static void rcu_copy_mutex_unlock(void) { int ret; @@ -80,14 +69,15 @@ static int num_write; #define NR_READ num_read #define NR_WRITE num_write -static cycles_t __attribute__((aligned(CAA_CACHE_LINE_SIZE))) *reader_time; -static cycles_t __attribute__((aligned(CAA_CACHE_LINE_SIZE))) *writer_time; +static caa_cycles_t __attribute__((aligned(CAA_CACHE_LINE_SIZE))) *reader_time; +static caa_cycles_t __attribute__((aligned(CAA_CACHE_LINE_SIZE))) *writer_time; +static void *thr_reader(void *arg) { - int i, j; + unsigned int i, j; struct test_array *local_ptr; - cycles_t time1, time2; + caa_cycles_t time1, time2; printf("thread_begin %s, tid %lu\n", "reader", urcu_get_thread_id()); @@ -101,7 +91,7 @@ void *thr_reader(void *arg) rcu_read_lock(); local_ptr = rcu_dereference(test_rcu_pointer); if (local_ptr) { - assert(local_ptr->a == 8); + urcu_posix_assert(local_ptr->a == 8); } rcu_read_unlock(); } @@ -119,11 +109,12 @@ void *thr_reader(void *arg) } +static void *thr_writer(void *arg) { - int i, j; + unsigned int i, j; struct test_array *new, *old; - cycles_t time1, time2; + caa_cycles_t time1, time2; printf("thread_begin %s, tid %lu\n", "writer", urcu_get_thread_id()); @@ -136,7 +127,7 @@ void *thr_writer(void *arg) rcu_copy_mutex_lock(); old = test_rcu_pointer; if (old) { - assert(old->a == 8); + urcu_posix_assert(old->a == 8); } new->a = 8; old = rcu_xchg_pointer(&test_rcu_pointer, new); @@ -164,8 +155,8 @@ int main(int argc, char **argv) pthread_t *tid_reader, *tid_writer; void *tret; int i; - cycles_t tot_rtime = 0; - cycles_t tot_wtime = 0; + caa_cycles_t tot_rtime = 0; + caa_cycles_t tot_wtime = 0; if (argc < 2) { printf("Usage : %s nr_readers nr_writers\n", argv[0]);