[Openmp-commits] [llvm] [openmp] [libomp] Set `KMP_USE_YIELD=0` when `OMP_WAIT_POLICY=active` if it's not specified explicitly (PR #199628)
Ryotaro Kasuga via Openmp-commits
openmp-commits at lists.llvm.org
Tue May 26 01:40:38 PDT 2026
https://github.com/kasuga-fj updated https://github.com/llvm/llvm-project/pull/199628
>From aa50e06ce9fd13e32e79009af9661e65f290db33 Mon Sep 17 00:00:00 2001
From: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: Tue, 26 May 2026 08:39:43 +0000
Subject: [PATCH] [libomp] Set `KMP_USE_YIELD=0` when `OMP_WAIT_POLICY=active`
---
nvim.log | 0
openmp/runtime/src/kmp_settings.cpp | 9 ++++++++-
2 files changed, 8 insertions(+), 1 deletion(-)
create mode 100644 nvim.log
diff --git a/nvim.log b/nvim.log
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/openmp/runtime/src/kmp_settings.cpp b/openmp/runtime/src/kmp_settings.cpp
index 66ef6f8097dce..253043652678e 100644
--- a/openmp/runtime/src/kmp_settings.cpp
+++ b/openmp/runtime/src/kmp_settings.cpp
@@ -807,6 +807,7 @@ static void __kmp_stg_print_inherit_fp_control(kmp_str_buf_t *buffer,
// Used for OMP_WAIT_POLICY
static char const *blocktime_str = NULL;
+static char const *use_yield_str = NULL;
// -----------------------------------------------------------------------------
// KMP_LIBRARY, OMP_WAIT_POLICY
@@ -829,6 +830,10 @@ static void __kmp_stg_parse_wait_policy(char const *name, char const *value,
// KMP_BLOCKTIME not specified, so set default to "infinite".
__kmp_dflt_blocktime = KMP_MAX_BLOCKTIME;
}
+ if (use_yield_str == NULL) {
+ // KMP_USE_YIELD not specified, so set default to 0.
+ __kmp_use_yield = 0;
+ }
} else if (__kmp_str_match("PASSIVE", 1, value)) {
__kmp_library = library_throughput;
__kmp_wpolicy_passive = true; /* allow sleep while active tasking */
@@ -6147,8 +6152,10 @@ void __kmp_env_initialize(char const *string) {
}
}
- // We need to know if blocktime was set when processing OMP_WAIT_POLICY
+ // We need to know if blocktime and use_yield were set when processing
+ // OMP_WAIT_POLICY
blocktime_str = __kmp_env_blk_var(&block, "KMP_BLOCKTIME");
+ use_yield_str = __kmp_env_blk_var(&block, "KMP_USE_YIELD");
// Special case. If we parse environment, not a string, process KMP_WARNINGS
// first.
More information about the Openmp-commits
mailing list