X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=test_perthreadlock.c;h=3fc4a537f89c98f9556fe706ddb9eb65b85da675;hb=ec3aaabbc4b507388502ee760e4ecf3ce5894176;hp=7d722314bb91c3a7c6899efa3aac5dcd2ea3fd8c;hpb=9e31d0f0084e781405056c347aa4a8c53f676096;p=urcu.git diff --git a/test_perthreadlock.c b/test_perthreadlock.c index 7d72231..3fc4a53 100644 --- a/test_perthreadlock.c +++ b/test_perthreadlock.c @@ -35,6 +35,9 @@ #include "arch.h" +/* Make this big enough to include the POWER5+ L3 cacheline size of 256B */ +#define CACHE_LINE_SIZE 4096 + #if defined(_syscall0) _syscall0(pid_t, gettid) #elif defined(__NR_gettid) @@ -63,7 +66,7 @@ struct test_array { struct per_thread_lock { pthread_mutex_t lock; -} __attribute__((aligned(128))); /* cache-line aligned */ +} __attribute__((aligned(CACHE_LINE_SIZE))); /* cache-line aligned */ static struct per_thread_lock *per_thread_lock; @@ -108,8 +111,10 @@ static int test_duration_read(void) static unsigned long long __thread nr_writes; static unsigned long long __thread nr_reads; -static unsigned long long __attribute__((aligned(128))) *tot_nr_writes; -static unsigned long long __attribute__((aligned(128))) *tot_nr_reads; +static +unsigned long long __attribute__((aligned(CACHE_LINE_SIZE))) *tot_nr_writes; +static +unsigned long long __attribute__((aligned(CACHE_LINE_SIZE))) *tot_nr_reads; static unsigned int nr_readers; static unsigned int nr_writers; @@ -185,7 +190,7 @@ void *thr_writer(void *data) } test_array.a = 0; test_array.a = 8; - for (tidx = nr_readers - 1; tidx >= 0; tidx--) { + for (tidx = (long)nr_readers - 1; tidx >= 0; tidx--) { pthread_mutex_unlock(&per_thread_lock[tidx].lock); } nr_writes++;