commit:     47faa4b07f8192795c1664bda54a88e1c6c4fcd9
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  1 20:57:12 2020 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Tue Dec  1 20:58:51 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47faa4b0

dev-libs/concurrencykit: fix ck_hp_fifo test on high cpu count

Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 .../concurrencykit/concurrencykit-0.7.0-r1.ebuild  |  1 +
 .../files/concurrencykit-0.7.0-tests.patch         | 33 ++++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild 
b/dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild
index 52fdc2f3633..e3b8d418245 100644
--- a/dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild
+++ b/dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild
@@ -26,6 +26,7 @@ PATCHES=(
        "${FILESDIR}/${P}-glibc-2.30.patch"
        "${FILESDIR}/${P}-gzip.patch"
        "${FILESDIR}/${P}-static-libs.patch"
+       "${FILESDIR}/${P}-tests.patch"
 )
 
 src_configure() {

diff --git a/dev-libs/concurrencykit/files/concurrencykit-0.7.0-tests.patch 
b/dev-libs/concurrencykit/files/concurrencykit-0.7.0-tests.patch
new file mode 100644
index 00000000000..4d29c6bcf7e
--- /dev/null
+++ b/dev-libs/concurrencykit/files/concurrencykit-0.7.0-tests.patch
@@ -0,0 +1,33 @@
+From 07835a3d08d96db30393c235f95649e792883d50 Mon Sep 17 00:00:00 2001
+From: Samy Al Bahra <[email protected]>
+Date: Mon, 30 Nov 2020 18:33:51 -0500
+Subject: [PATCH] regressions/ck_hp_fifo: fixes false-positive from #165.
+
+Add busy-wait barrier before next stage of test. Otherwise,
+some threads may enter it and a non-empty queue state is observed.
+---
+ regressions/ck_hp/validate/ck_hp_fifo.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/regressions/ck_hp/validate/ck_hp_fifo.c 
b/regressions/ck_hp/validate/ck_hp_fifo.c
+index 4454283c..5820f1aa 100644
+--- a/regressions/ck_hp/validate/ck_hp_fifo.c
++++ b/regressions/ck_hp/validate/ck_hp_fifo.c
+@@ -55,6 +55,7 @@ static struct affinity a;
+ static int size;
+ static unsigned int barrier;
+ static unsigned int e_barrier;
++static unsigned int s_barrier;
+ 
+ static void *
+ test(void *c)
+@@ -98,6 +99,9 @@ test(void *c)
+               }
+       }
+ 
++      ck_pr_inc_uint(&s_barrier);
++      while (ck_pr_load_uint(&s_barrier) < (unsigned int)nthr);
++
+       for (i = 0; i < ITERATIONS; i++) {
+               for (j = 0; j < size; j++) {
+                       fifo_entry = malloc(sizeof(ck_hp_fifo_entry_t));

Reply via email to