X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=tests%2Fbenchmark%2Ftest_urcu_qsbr_timing.c;h=00de939ffa101c6bca95bd8d71530b5a5640dec4;hb=HEAD;hp=9b5195d9605e4ba914cf76cdeab14f2c63019c12;hpb=f5ab766ee2c8300cb00ca5878b1cb464f960a66d;p=urcu.git diff --git a/tests/benchmark/test_urcu_qsbr_timing.c b/tests/benchmark/test_urcu_qsbr_timing.c index 9b5195d..00de939 100644 --- a/tests/benchmark/test_urcu_qsbr_timing.c +++ b/tests/benchmark/test_urcu_qsbr_timing.c @@ -1,23 +1,9 @@ +// SPDX-FileCopyrightText: 2009 Mathieu Desnoyers +// +// SPDX-License-Identifier: GPL-2.0-or-later + /* - * test_qsbr_timing.c - * * Userspace QSBR - 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,10 +14,10 @@ #include #include #include -#include #include #include +#include #include "thread-id.h" #define _LGPL_SOURCE @@ -39,6 +25,7 @@ pthread_mutex_t rcu_copy_mutex = PTHREAD_MUTEX_INITIALIZER; +static void rcu_copy_mutex_lock(void) { int ret; @@ -49,6 +36,7 @@ void rcu_copy_mutex_lock(void) } } +static void rcu_copy_mutex_unlock(void) { int ret; @@ -80,14 +68,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 +90,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(); } @@ -120,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()); @@ -137,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); @@ -165,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]);