From patchwork Sun Jun 5 23:48:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mohamed Sayed X-Patchwork-Id: 54817 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 070583857376 for ; Sun, 5 Jun 2022 23:49:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 070583857376 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1654472946; bh=XtEoSBoY0wlm5tEbarfgVHRuvnlD19kJqc0DXswf9Uc=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=CZlwDH40TdvcKAZsVtVjRjfkYwEomMoaHAuaTVrtD/SA0kRhOFk51JJDrV4Ig00Sm kks62bRLoMdlHJBJ6XPcrG3BA77oRKEoJLyxpedtb0ct9i1bmd641LfuTmRO6q8NmP z+ZRGNoB2N2SsdMt0MbKddsEaucn9whaSclh6PXA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by sourceware.org (Postfix) with ESMTPS id 0165C3858C56 for ; Sun, 5 Jun 2022 23:48:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0165C3858C56 Received: by mail-ed1-x52b.google.com with SMTP id c2so16694391edf.5 for ; Sun, 05 Jun 2022 16:48:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=tmpQuYfTsLcTo+D6Gf+77HDeGzAC/Q9V3nsV6BsLvtg=; b=rNcN52pYFnIE9helV9IJVskTQcYliGE1vO8fIErqm1r21KGFCMC4YA546CvGIg7z64 CCE4/Li6kyoFKvE1tE1NxUCqfgyFdIqknU+P7u4NEU5pg8uWkBV12QmG7vdPLc62oxIb uwBjDu9OfGsMT9ylNIljBDLZl933pf2gFGy2OOl3YMaWEtGJZM7YDOdYyGhb44y8FAaI ShvHUjM8FWPKRqNwq+xLn8wWnhgPteu7vLKdvIMXSS9zlU3A+gerWSp07bq4aLTyCCk+ r090AEtxT2UaDocnPe3JE3fQgJHeACAru5Ubbn+1/NCvme/UeMmOnY1Hj3XMbe7S6AKt rTuA== X-Gm-Message-State: AOAM531cXQsflvxuN8gBs71DBLGH8U9t9EKBM/PabfGdQjWAaXuJ8ZLw yM523lzR7kR3LAd3xMKAgNQOOPQ1aMsIa34FjbYcBpHHUUo= X-Google-Smtp-Source: ABdhPJxAYuFOdvhQjLdLes+NQdbNz/qURUcgOcJFfhXRids9ZszrSOMrwxC2bIA5+gKXf0RuH1FWJ3y412Dmf++T7f4= X-Received: by 2002:a05:6402:5211:b0:42e:2e1c:5bce with SMTP id s17-20020a056402521100b0042e2e1c5bcemr16717616edd.198.1654472913472; Sun, 05 Jun 2022 16:48:33 -0700 (PDT) MIME-Version: 1.0 Date: Mon, 6 Jun 2022 01:48:22 +0200 Message-ID: Subject: [PATCH]: libgompd add parallel handle functions To: gcc-patches@gcc.gnu.org X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Mohamed Sayed via Gcc-patches From: Mohamed Sayed Reply-To: Mohamed Sayed Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch adds parallel region handles specified in section 5.5.3. From examining libgomp code, I found that struct gomp_team describes the parallel region. The Thread handle gives the address of gomp_thread so, I tried to access *team gomp_thread->ts->team. The parallel handle is the team pointer in team state. I have a question about ompd_get_task_parallel_handle https://www.openmp.org/spec-html/5.0/openmpsu218.html How can i reach gomp_team from gomp_task And the union in gomp_task has two entries gomp_sem_t and gomp_team libgomp/ChangeLog 2022-06-06 Mohamed Sayed * Makefile.am: (libgompd_la_SOURCES): Add ompd-parallel.c. * Makefile.in: Regenerate. * libgompd.map: Add ompd_get_curr_parallel_handle, ompd_get_enclosing_parallel_handle, ompd_rel_parallel_handle and ompd_parallel_handle_compare symbol versions. * ompd-support.h:() : Add gompd_access (gomp_team_state, team) and gompd_access (gomp_team, prev_ts). diff --git a/libgomp/Makefile.am b/libgomp/Makefile.am index 6d913a93e7f..4e215450b25 100644 --- a/libgomp/Makefile.am +++ b/libgomp/Makefile.am @@ -94,7 +94,7 @@ libgomp_la_SOURCES = alloc.c atomic.c barrier.c critical.c env.c error.c \ priority_queue.c affinity-fmt.c teams.c allocator.c oacc-profiling.c \ oacc-target.c ompd-support.c -libgompd_la_SOURCES = ompd-init.c ompd-helper.c ompd-icv.c +libgompd_la_SOURCES = ompd-init.c ompd-helper.c ompd-icv.c ompd-parallel.c include $(top_srcdir)/plugin/Makefrag.am diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in index 40f896b5f03..ab66ad1c8f0 100644 --- a/libgomp/Makefile.in +++ b/libgomp/Makefile.in @@ -233,7 +233,8 @@ am_libgomp_la_OBJECTS = alloc.lo atomic.lo barrier.lo critical.lo \ affinity-fmt.lo teams.lo allocator.lo oacc-profiling.lo \ oacc-target.lo ompd-support.lo $(am__objects_1) libgomp_la_OBJECTS = $(am_libgomp_la_OBJECTS) -am_libgompd_la_OBJECTS = ompd-init.lo ompd-helper.lo ompd-icv.lo +am_libgompd_la_OBJECTS = ompd-init.lo ompd-helper.lo ompd-icv.lo \ + ompd-parallel.lo libgompd_la_OBJECTS = $(am_libgompd_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -583,7 +584,7 @@ libgomp_la_SOURCES = alloc.c atomic.c barrier.c critical.c env.c \ oacc-async.c oacc-plugin.c oacc-cuda.c priority_queue.c \ affinity-fmt.c teams.c allocator.c oacc-profiling.c \ oacc-target.c ompd-support.c $(am__append_7) -libgompd_la_SOURCES = ompd-init.c ompd-helper.c ompd-icv.c +libgompd_la_SOURCES = ompd-init.c ompd-helper.c ompd-icv.c ompd-parallel.c # Nvidia PTX OpenACC plugin. @PLUGIN_NVPTX_TRUE@libgomp_plugin_nvptx_version_info = -version-info $(libtool_VERSION) @@ -800,6 +801,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompd-helper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompd-icv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompd-init.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompd-parallel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompd-support.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ordered.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parallel.Plo@am__quote@ diff --git a/libgomp/libgompd.map b/libgomp/libgompd.map index 85bdc3695f6..1662dc56962 100644 --- a/libgomp/libgompd.map +++ b/libgomp/libgompd.map @@ -16,6 +16,10 @@ OMPD_5.1 { ompd_thread_handle_compare; ompd_get_thread_id; ompd_get_device_from_thread; + ompd_get_curr_parallel_handle; + ompd_get_enclosing_parallel_handle; + ompd_rel_parallel_handle; + ompd_parallel_handle_compare; local: *; }; diff --git a/libgomp/ompd-support.h b/libgomp/ompd-support.h index 39d55161132..48a2e6133f5 100644 --- a/libgomp/ompd-support.h +++ b/libgomp/ompd-support.h @@ -83,12 +83,15 @@ extern __UINT64_TYPE__ gompd_state; gompd_access (gomp_thread_pool, threads) \ gompd_access (gomp_thread, ts) \ gompd_access (gomp_team_state, team_id) \ - gompd_access (gomp_task, icv) + gompd_access (gomp_task, icv) \ + gompd_access (gomp_team_state, team) \ + gompd_access (gomp_team, prev_ts) #define GOMPD_SIZES(gompd_size) \ gompd_size (gomp_thread) \ gompd_size (gomp_task_icv) \ - gompd_size (gomp_task) + gompd_size (gomp_task) + #ifdef HAVE_ATTRIBUTE_VISIBILITY #pragma GCC visibility pop