From f0766a7c47a9afcc00f419488d986c45b211e54d Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Thu, 17 Oct 2024 16:11:22 -0600 Subject: [PATCH 1/9] Skip msan builds with hwloc because hwloc causes a bunch false positives that are somehow also non-ignorable via clang's sanitize-ignorelist option. --- .circleci/config.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 39bc861ca..c0c238a8e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -219,6 +219,25 @@ workflows: scheduler: [nemesis, sherwood, distrib] topology: ['no', binders, hwloc] sanitizer: [address, memory, thread, undefined] + exclude: + - scheduler: nemesis + topology: binders + sanitizer: memory + - scheduler: sherwood + topology: binders + sanitizer: memory + - scheduler: distrib + topology: binders + sanitizer: memory + - scheduler: nemesis + topology: hwloc + sanitizer: memory + - scheduler: sherwood + topology: hwloc + sanitizer: memory + - scheduler: distrib + topology: hwloc + sanitizer: memory - arm_acfl: matrix: parameters: From 1880c47ab82105d2f5d4f71976b26d1f4754c2bc Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Thu, 17 Oct 2024 16:15:31 -0600 Subject: [PATCH 2/9] Fix an unused variable warning in release builds. Fixes #299. --- include/qthread/syncvar.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/qthread/syncvar.hpp b/include/qthread/syncvar.hpp index 6d8bf6d4a..3b56fc5ee 100644 --- a/include/qthread/syncvar.hpp +++ b/include/qthread/syncvar.hpp @@ -32,8 +32,12 @@ class syncvar { uint64_t readFF(void) { uint64_t ret = 0; +#ifndef NDEBUG int status = readFF(&ret); assert(status == QTHREAD_SUCCESS); +#else + readFF(&ret); +#endif return ret; } @@ -43,8 +47,12 @@ class syncvar { uint64_t readFE(void) { uint64_t ret = 0; +#ifndef NDEBUG int status = readFE(&ret); assert(status == QTHREAD_SUCCESS); +#else + readFE(&ret); +#endif return ret; } From 2368ba6baaeb986a16d7444edf412e3ef74296b4 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Thu, 17 Oct 2024 16:15:45 -0600 Subject: [PATCH 3/9] Formatting fix. --- src/fastcontext/context.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fastcontext/context.c b/src/fastcontext/context.c index b05c438f4..f28efa41d 100644 --- a/src/fastcontext/context.c +++ b/src/fastcontext/context.c @@ -29,7 +29,7 @@ void INTERNAL qt_makectxt(uctxt_t *ucp, void (*func)(void), int argc, ...) { ucp->uc_stack.ss_size / sizeof(unsigned long); sp = tos - 16; #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN - ucp->mc.pc = *(long*)func; + ucp->mc.pc = *(long *)func; #else ucp->mc.pc = (long)func; #endif From 348c53ed4db936f5e53281fd01a8e39d6208b463 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Thu, 17 Oct 2024 16:16:35 -0600 Subject: [PATCH 4/9] Add most recent formatting fix to blame ignore list. --- .git-blame-ignore-revs | 1 + 1 file changed, 1 insertion(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index a20d365af..130fa9c12 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,3 +1,4 @@ 6901dc07127f54c060ec4046e21d05ccd7f437ab 3ddc9da40f8b34565c90d17ef83a9ef95a9deb18 d1196d946c6551b205791f47ee952412e1a3e9bc +2368ba6baaeb986a16d7444edf412e3ef74296b4 From d2caf37d3e1bf2e5df5f55b685950326436ad5ed Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Fri, 18 Oct 2024 09:40:33 -0600 Subject: [PATCH 5/9] Increase time limit for arm gcc and clang builds to avoid timeouts. --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c0c238a8e..bb48de728 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,7 +28,7 @@ jobs: make tests -j2 - run: command: timeout --foreground -k 10s 2m make check - no_output_timeout: 60s + no_output_timeout: 180s arm_clang: parameters: @@ -59,7 +59,7 @@ jobs: make tests -j2 - run: command: timeout --foreground -k 10s 2m make check - no_output_timeout: 60s + no_output_timeout: 180s arm_sanitizers: parameters: From c3c5cd92162b9fdf3d2102fb43e6f747f9c0e6b4 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Fri, 18 Oct 2024 09:58:35 -0600 Subject: [PATCH 6/9] Increase timeout for MUSL CI builds. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bb48de728..ea43f90c7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -198,7 +198,7 @@ jobs: make tests -j2 - run: command: make check - no_output_timeout: 60s + no_output_timeout: 180s workflows: build_and_test: From 925ba14a244dc04febd3c781c75162356f86c0ba Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Fri, 18 Oct 2024 09:59:11 -0600 Subject: [PATCH 7/9] Increase timeout for acfl and nvc builds as well. --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ea43f90c7..d3b6a1e94 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -135,7 +135,7 @@ jobs: command: | export PATH=$PATH:/opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin timeout --foreground -k 10s 4m make check - no_output_timeout: 60s + no_output_timeout: 180s nvc: parameters: @@ -174,7 +174,7 @@ jobs: - run: command: | timeout --foreground -k 10s 4m make check - no_output_timeout: 60s + no_output_timeout: 180s musl: parameters: From e4a0868fdc7f065234fa301821ffb39407478816 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Fri, 18 Oct 2024 14:17:35 -0600 Subject: [PATCH 8/9] Disable failing MUSL CI builds. As best I can tell it's a topology detection issue specific to the CI setup and not something we want to try to fix right now. --- .circleci/config.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d3b6a1e94..dadb14514 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -255,4 +255,29 @@ workflows: worker_type: [medium, arm.medium] scheduler: [nemesis, sherwood, distrib] topology: ['no', binders, hwloc] + exclude: + - worker_type: medium + scheduler: sherwood + topology: binders + - worker_type: medium + scheduler: sherwood + topology: hwloc + - worker_type: medium + scheduler: distrib + topology: binders + - worker_type: medium + scheduler: distrib + topology: hwloc + - worker_type: arm.medium + scheduler: sherwood + topology: binders + - worker_type: arm.medium + scheduler: sherwood + topology: hwloc + - worker_type: arm.medium + scheduler: distrib + topology: binders + - worker_type: arm.medium + scheduler: distrib + topology: hwloc From 1cc490c45901119cd93a45ac4fb689eb3e0432a1 Mon Sep 17 00:00:00 2001 From: Ian Henriksen Date: Fri, 18 Oct 2024 14:49:40 -0600 Subject: [PATCH 9/9] Fix strict prototype warning from recent binders topology fix. --- src/affinity/binders.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/affinity/binders.c b/src/affinity/binders.c index ea5e375df..7c6c38b2c 100644 --- a/src/affinity/binders.c +++ b/src/affinity/binders.c @@ -184,7 +184,7 @@ void INTERNAL qt_affinity_init(qthread_shepherd_id_t *nbshepherds, } } -void INTERNAL qt_affinity_deinit() { +void INTERNAL qt_affinity_deinit(void) { if (sheps.binds) { for (int i = 0; i < sheps.num; i++) { hwloc_bitmap_free(sheps.binds[i]); } qt_free(sheps.binds);