[Openmp-commits] [PATCH] D15628: Prevent monitor thread creation when KMP_BLOCKTIME="infinite"
Jonathan Peyton via Openmp-commits
openmp-commits at lists.llvm.org
Fri Dec 18 15:23:48 PST 2015
This revision was automatically updated to reflect the committed changes.
Closed by commit rL256061: Prevent monitor thread creation when KMP_BLOCKTIME="infinite" (authored by jlpeyton).
Changed prior to commit:
http://reviews.llvm.org/D15628?vs=43186&id=43276#toc
Repository:
rL LLVM
http://reviews.llvm.org/D15628
Files:
openmp/trunk/runtime/src/z_Linux_util.c
openmp/trunk/runtime/src/z_Windows_NT_util.c
Index: openmp/trunk/runtime/src/z_Linux_util.c
===================================================================
--- openmp/trunk/runtime/src/z_Linux_util.c
+++ openmp/trunk/runtime/src/z_Linux_util.c
@@ -1123,6 +1123,13 @@
int status;
int auto_adj_size = FALSE;
+ if( __kmp_dflt_blocktime == KMP_MAX_BLOCKTIME ) {
+ // We don't need monitor thread in case of MAX_BLOCKTIME
+ KA_TRACE( 10, ("__kmp_create_monitor: skipping monitor thread because of MAX blocktime\n" ) );
+ th->th.th_info.ds.ds_tid = 0; // this makes reap_monitor no-op
+ th->th.th_info.ds.ds_gtid = 0;
+ return;
+ }
KA_TRACE( 10, ("__kmp_create_monitor: try to create monitor\n" ) );
KMP_MB(); /* Flush all pending memory write invalidates. */
@@ -1291,6 +1298,7 @@
// If both tid and gtid are KMP_GTID_DNE, the monitor has been shut down.
KMP_DEBUG_ASSERT( th->th.th_info.ds.ds_tid == th->th.th_info.ds.ds_gtid );
if ( th->th.th_info.ds.ds_gtid != KMP_GTID_MONITOR ) {
+ KA_TRACE( 10, ("__kmp_reap_monitor: monitor did not start, returning\n") );
return;
}; // if
Index: openmp/trunk/runtime/src/z_Windows_NT_util.c
===================================================================
--- openmp/trunk/runtime/src/z_Windows_NT_util.c
+++ openmp/trunk/runtime/src/z_Windows_NT_util.c
@@ -1429,6 +1429,14 @@
DWORD idThread;
int ideal, new_ideal;
+ if( __kmp_dflt_blocktime == KMP_MAX_BLOCKTIME ) {
+ // We don't need monitor thread in case of MAX_BLOCKTIME
+ KA_TRACE( 10, ("__kmp_create_monitor: skipping monitor thread because of MAX blocktime\n" ) );
+ th->th.th_info.ds.ds_tid = 0; // this makes reap_monitor no-op
+ th->th.th_info.ds.ds_gtid = 0;
+ TCW_4( __kmp_init_monitor, 2 ); // Signal to stop waiting for monitor creation
+ return;
+ }
KA_TRACE( 10, ("__kmp_create_monitor: try to create monitor\n" ) );
KMP_MB(); /* Flush all pending memory write invalidates. */
@@ -1613,6 +1621,7 @@
// If both tid and gtid are KMP_GTID_DNE, the monitor has been shut down.
KMP_DEBUG_ASSERT( th->th.th_info.ds.ds_tid == th->th.th_info.ds.ds_gtid );
if ( th->th.th_info.ds.ds_gtid != KMP_GTID_MONITOR ) {
+ KA_TRACE( 10, ("__kmp_reap_monitor: monitor did not start, returning\n") );
return;
}; // if
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15628.43276.patch
Type: text/x-patch
Size: 2454 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20151218/f716c1f9/attachment.bin>
More information about the Openmp-commits
mailing list