From 5cb8bdc4f184fa8b90c9c39e47b14afdafd998f0 Mon Sep 17 00:00:00 2001 From: Joachim Jenke Date: Thu, 10 Aug 2023 13:50:46 +0200 Subject: [PATCH] Fix classification of some microkernels Fix data race pairs for barrier3 kernel --- ...-orig-yes.c => DRB129-mergeable-taskwait-orig-no.c} | 0 micro-benchmarks/DRB142-acquirerelease-orig-yes.c | 7 +++---- micro-benchmarks/DRB189-barrier3-yes.c | 10 +++++++--- 3 files changed, 10 insertions(+), 7 deletions(-) rename micro-benchmarks/{DRB129-mergeable-taskwait-orig-yes.c => DRB129-mergeable-taskwait-orig-no.c} (100%) diff --git a/micro-benchmarks/DRB129-mergeable-taskwait-orig-yes.c b/micro-benchmarks/DRB129-mergeable-taskwait-orig-no.c similarity index 100% rename from micro-benchmarks/DRB129-mergeable-taskwait-orig-yes.c rename to micro-benchmarks/DRB129-mergeable-taskwait-orig-no.c diff --git a/micro-benchmarks/DRB142-acquirerelease-orig-yes.c b/micro-benchmarks/DRB142-acquirerelease-orig-yes.c index 19a3a97..84f392f 100644 --- a/micro-benchmarks/DRB142-acquirerelease-orig-yes.c +++ b/micro-benchmarks/DRB142-acquirerelease-orig-yes.c @@ -15,7 +15,7 @@ * variable. * * Implicit flush must be used after critical construct, after line:34 and before line:35 to avoid data race. - * Data Race pair: x@34:9:W vs. x@34:9:W + * Data Race pair: x@34:9:W vs. x@43:11:R * */ @@ -39,9 +39,8 @@ int main(){ while (tmp == 0) { #pragma omp atomic read acquire tmp = y; - } - #pragma omp critical - { if (x!=10) printf("x = %d\n", x); } + } + if (x!=10) printf("x = %d\n", x); } } return 0; diff --git a/micro-benchmarks/DRB189-barrier3-yes.c b/micro-benchmarks/DRB189-barrier3-yes.c index ea8e57b..567b7b6 100644 --- a/micro-benchmarks/DRB189-barrier3-yes.c +++ b/micro-benchmarks/DRB189-barrier3-yes.c @@ -11,9 +11,13 @@ * This is a program based on a dataset contributed by * Wenhao Wu and Stephen F. Siegel @Univ. of Delaware. - * one synchronization commented out. - * enters. So race on x can occur. - * Data race pair: x@104:9:W vs. x@111:9:W + * As soon as one thread releases all locks, the other thread can perform multiple + * barrier_wait() cycles ending up concurrent execution of different epochs. + * Data race pair: x@108:9:W vs. x@115:9:W + x@108:9:W vs. x@103:58:R + x@108:9:W vs. x@110:58:R + x@101:58:R vs. x@115:9:W + x@110:58:R vs. x@115:9:W */ #include