From f617bc0efe0d52436828ba10e7b2cfa73b5c10eb Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Mon, 15 Sep 2025 08:53:21 -0400 Subject: [PATCH] [libc++] Disable atomic_wait benchmarks outside of dry-run mode The atomic_wait benchmarks are great, but they tend to overload the system they're running on. For that reason, we can't run them on our CI infrastructure on a regular basis. Instead of removing them, make them unsupported outside of dry-running, which allows keeping the benchmarks around and ensuring they don't rot, but doesn't run them along with the other benchmarks. If we need to investigate atomic_wait performance, it's trivial to mark the benchmark as supported and run it for local investigations. This is an alternative to https://github.com/llvm/llvm-project/pull/158289. --- .../test/benchmarks/atomic_wait_1_waiter_1_notifier.bench.cpp | 4 ++++ .../test/benchmarks/atomic_wait_N_waiter_N_notifier.bench.cpp | 4 ++++ .../benchmarks/atomic_wait_multi_waiter_1_notifier.bench.cpp | 4 ++++ libcxx/test/benchmarks/atomic_wait_vs_mutex_lock.bench.cpp | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/libcxx/test/benchmarks/atomic_wait_1_waiter_1_notifier.bench.cpp b/libcxx/test/benchmarks/atomic_wait_1_waiter_1_notifier.bench.cpp index c3d7e6511925d..5c82b8e8e9af6 100644 --- a/libcxx/test/benchmarks/atomic_wait_1_waiter_1_notifier.bench.cpp +++ b/libcxx/test/benchmarks/atomic_wait_1_waiter_1_notifier.bench.cpp @@ -8,6 +8,10 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 +// This benchmark is very expensive and we don't want to run it on a regular basis, +// only to ensure the code doesn't rot. +// REQUIRES: enable-benchmarks=dry-run + #include "atomic_wait_helper.h" #include diff --git a/libcxx/test/benchmarks/atomic_wait_N_waiter_N_notifier.bench.cpp b/libcxx/test/benchmarks/atomic_wait_N_waiter_N_notifier.bench.cpp index d9b9aa212f602..4d6547418e767 100644 --- a/libcxx/test/benchmarks/atomic_wait_N_waiter_N_notifier.bench.cpp +++ b/libcxx/test/benchmarks/atomic_wait_N_waiter_N_notifier.bench.cpp @@ -8,6 +8,10 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 +// This benchmark is very expensive and we don't want to run it on a regular basis, +// only to ensure the code doesn't rot. +// REQUIRES: enable-benchmarks=dry-run + #include "atomic_wait_helper.h" #include diff --git a/libcxx/test/benchmarks/atomic_wait_multi_waiter_1_notifier.bench.cpp b/libcxx/test/benchmarks/atomic_wait_multi_waiter_1_notifier.bench.cpp index a14a6a2ad9c98..f8288cb4c8020 100644 --- a/libcxx/test/benchmarks/atomic_wait_multi_waiter_1_notifier.bench.cpp +++ b/libcxx/test/benchmarks/atomic_wait_multi_waiter_1_notifier.bench.cpp @@ -8,6 +8,10 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 +// This benchmark is very expensive and we don't want to run it on a regular basis, +// only to ensure the code doesn't rot. +// REQUIRES: enable-benchmarks=dry-run + #include "atomic_wait_helper.h" #include diff --git a/libcxx/test/benchmarks/atomic_wait_vs_mutex_lock.bench.cpp b/libcxx/test/benchmarks/atomic_wait_vs_mutex_lock.bench.cpp index a554c721df017..9849ffa7e038d 100644 --- a/libcxx/test/benchmarks/atomic_wait_vs_mutex_lock.bench.cpp +++ b/libcxx/test/benchmarks/atomic_wait_vs_mutex_lock.bench.cpp @@ -8,6 +8,10 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 +// This benchmark is very expensive and we don't want to run it on a regular basis, +// only to ensure the code doesn't rot. +// REQUIRES: enable-benchmarks=dry-run + #include #include #include