[Openmp-commits] [PATCH] D97329: [OpenMP] Fixed a crash when offloading to x86_64 with target nowait

Joachim Protze via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Wed Feb 24 09:09:13 PST 2021

protze.joachim added a comment.

Including openmp/runtime/test/ompt/callback.h, I could identify that the segfault seems to occur inside of the OpenMP for loop. The last printed OMPT event on the crashing thread prints `ompt_event_loop_begin`.

If you build the OpenMP runtime with debugging symbols and include callback.h to dump the OMPT events (I just add `-include .../llvm-project/openmp/runtime/test/ompt/callback.h` to the compile line), you can get the OMPT thread-id with:

  (gdb) print __kmp_threads[__kmp_gtid].th.ompt_thread_info.thread_data.value

This is the same ID as at the beginning of all callback.h output by that thread.

Another observation:
clang/11 would execute all code in the test on the initial thread, avoiding overloading the system. The current implementation will execute an instance of the target region on each of the hidden threads, effectively oversubscribing the system when running on a dual-core desktop. Is this the intended behavior?

  rG LLVM Github Monorepo



More information about the Openmp-commits mailing list