X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=test_perthreadlock.c;h=3fc4a537f89c98f9556fe706ddb9eb65b85da675;hp=89cce65be71fbdb8badbebedc936b6611e7dc697;hb=55271c137f2480d80f675a8935d28ad22516438e;hpb=fd6a23f245ce6fc26b45baf1db27c8d3b359719c diff --git a/test_perthreadlock.c b/test_perthreadlock.c index 89cce65..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;