forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]>
- Loading branch information
Showing
2 changed files
with
34 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
dev-libs/concurrencykit/files/concurrencykit-0.7.0-tests.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)); |