gcc/libgomp/testsuite
Kwok Cheung Yeung b52643ab90 libgomp: Fix hang when profiling OpenACC programs with CUDA 9.0 nvprof
The version of nvprof in CUDA 9.0 causes a hang when used to profile an
OpenACC program.  This is because it calls acc_get_device_type from
a callback called during device initialization, which then attempts
to acquire acc_device_lock while it is already taken, resulting in
deadlock.  This works around the issue by returning acc_device_none
from acc_get_device_type without attempting to acquire the lock when
initialization has not completed yet.

2020-07-14  Tom de Vries  <tom@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	libgomp/
	* oacc-init.c (acc_init_state_lock, acc_init_state, acc_init_thread):
	New variable.
	(acc_init_1): Set acc_init_thread to pthread_self ().  Set
	acc_init_state to initializing at the start, and to initialized at the
	end.
	(self_initializing_p): New function.
	(acc_get_device_type): Return acc_device_none if called by thread that
	is currently executing acc_init_1.
	* libgomp.texi (acc_get_device_type): Update documentation.
	(Implementation Status and Implementation-Defined Behavior): Likewise.
	* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-2.c: New.
2020-07-14 10:31:35 -07:00
..
config
lib handle dumpbase in offloading, adjust testsuite 2020-06-23 06:31:18 -03:00
libgomp.c openmp: Adjust outer bounds of non-rect loops 2020-07-14 10:31:59 +02:00
libgomp.c++ c++: Change the default dialect to C++17. 2020-06-26 15:29:07 -04:00
libgomp.c-c++-common openmp: omp_alloc(0, ...) should return NULL. 2020-05-30 14:02:56 +02:00
libgomp.fortran [OpenMP, Fortran] Add structure/derived-type element mapping 2020-07-14 13:39:46 +02:00
libgomp.graphite
libgomp.hsa.c
libgomp.oacc-c [gcn] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE' 2020-04-29 09:24:07 +02:00
libgomp.oacc-c++ [gcn] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE' 2020-04-29 09:24:07 +02:00
libgomp.oacc-c-c++-common libgomp: Fix hang when profiling OpenACC programs with CUDA 9.0 nvprof 2020-07-14 10:31:35 -07:00
libgomp.oacc-fortran openacc: Don't strip TO_PSET/POINTER for enter/exit data 2020-07-13 03:21:20 -07:00
Makefile.am libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
Makefile.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
libgomp-site-extra.exp.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
libgomp-test-support.exp.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00