public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Alexander Monakov <amonakov@ispras.ru>
To: gcc-patches@gcc.gnu.org
Subject: [gomp-nvptx 3/7] libgomp plugin: make cuMemFreeHost error non-fatal
Date: Fri, 18 Mar 2016 17:49:00 -0000	[thread overview]
Message-ID: <1458323327-9908-4-git-send-email-amonakov@ispras.ru> (raw)
In-Reply-To: <1458323327-9908-1-git-send-email-amonakov@ispras.ru>

Unlike cuMemFree and other resource-releasing functions called on exit,
cuMemFreeHost appears to re-report errors encountered in kernel launch.
This leads to a deadlock after GOMP_PLUGIN_fatal is reentered.

While the behavior on libgomp side is suboptimal (there's no need to
call resource-releasing functions if we're about to destroy the CUDA
context anyway), this behavior on cuMemFreeHost part is not useful
and just makes error "recovery" harder.  This was reported to NVIDIA
(bug ref. 1737876), but we can work around it by simply reporting the
error without making it fatal.

	* plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error non-fatal.
---
 libgomp/ChangeLog.gomp-nvptx  | 4 ++++
 libgomp/plugin/plugin-nvptx.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index adf57b1..4e44242 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -135,7 +135,7 @@ map_fini (struct ptx_stream *s)
 
   r = cuMemFreeHost (s->h);
   if (r != CUDA_SUCCESS)
-    GOMP_PLUGIN_fatal ("cuMemFreeHost error: %s", cuda_error (r));
+    GOMP_PLUGIN_error ("cuMemFreeHost error: %s", cuda_error (r));
 }
 
 static void

  parent reply	other threads:[~2016-03-18 17:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-18 17:48 [gomp-nvptx 0/7] Various fixes Alexander Monakov
2016-03-18 17:48 ` [gomp-nvptx 2/7] nvptx libgcc: use attribute shared Alexander Monakov
2016-03-18 17:48 ` [gomp-nvptx 4/7] nvptx backend: re-enable line info generation Alexander Monakov
2016-03-18 17:48 ` [gomp-nvptx 1/7] libgomp: remove paste error in gomp_team_barrier_wait_end Alexander Monakov
2016-03-18 17:49 ` [gomp-nvptx 5/7] nvptx backend: use POINTER_SIZE instead of BITS_PER_WORD Alexander Monakov
2016-03-18 17:49 ` [gomp-nvptx 7/7] nvptx backend: define STACK_SIZE_MODE Alexander Monakov
2016-03-18 17:49 ` Alexander Monakov [this message]
2016-03-18 18:13 ` [gomp-nvptx 6/7] nvptx backend: change mul.u32 to mul.lo.u32 Alexander Monakov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1458323327-9908-4-git-send-email-amonakov@ispras.ru \
    --to=amonakov@ispras.ru \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).