summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Kostecki <conikost@gentoo.org>2020-12-01 21:57:12 +0100
committerConrad Kostecki <conikost@gentoo.org>2020-12-01 21:58:51 +0100
commit47faa4b07f8192795c1664bda54a88e1c6c4fcd9 (patch)
treeecfa07f6010c95b79b0a065785f2b10d46f253e6 /dev-libs/concurrencykit
parentsys-apps/smcipmitool: drop old version (diff)
downloadgentoo-47faa4b07f8192795c1664bda54a88e1c6c4fcd9.tar.gz
gentoo-47faa4b07f8192795c1664bda54a88e1c6c4fcd9.tar.bz2
gentoo-47faa4b07f8192795c1664bda54a88e1c6c4fcd9.zip
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@gentoo.org>
Diffstat (limited to 'dev-libs/concurrencykit')
-rw-r--r--dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild1
-rw-r--r--dev-libs/concurrencykit/files/concurrencykit-0.7.0-tests.patch33
2 files changed, 34 insertions, 0 deletions
diff --git a/dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild b/dev-libs/concurrencykit/concurrencykit-0.7.0-r1.ebuild
index 52fdc2f36338..e3b8d4182451 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 000000000000..4d29c6bcf7eb
--- /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 <sbahra@backtrace.io>
+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));