aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLancelot Six <lancelot.six@amd.com>2023-10-17 15:45:45 +0000
committerLancelot Six <lancelot.six@amd.com>2023-10-18 08:26:23 +0000
commitfded0fb898618b5b659762ace776144afa876035 (patch)
tree204071443f2e22255a8f6f2cd193fd4269b63bcd
parent0f79aa900f3a69780dde1e934ffe21e30236934e (diff)
downloadgdb-fded0fb898618b5b659762ace776144afa876035.zip
gdb-fded0fb898618b5b659762ace776144afa876035.tar.gz
gdb-fded0fb898618b5b659762ace776144afa876035.tar.bz2
gdb/testsuite/gdb.rocm: Check value returned by hipDeviceSynchronize
Functions of the hip runtime returning a hipError_t can be marked nodiscard depending on the configuration[1] (when compiled with C++17). This patch makes sure that we always check the value returned by hipDeviceSynchronize and friends, and print an error message when appropriate. This avoid a wall of warnings when running the testsuite if the compiler defaults to using C++17. It is always a good practice to check the return values anyway. [1] https://github.com/ROCm-Developer-Tools/HIP/blob/docs/5.7.1/include/hip/hip_runtime_api.h#L203-L218 Change-Id: I2a819a8ac45f4bcf814efe9a2ff12c6a7ad22f97 Approved-By: Simon Marchi <simon.marchi@efficios.com>
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp13
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp14
-rw-r--r--gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp13
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory.cpp13
-rw-r--r--gdb/testsuite/lib/rocm.exp3
6 files changed, 52 insertions, 6 deletions
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp
index 1a731ae..e42c8f1 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp
@@ -18,6 +18,17 @@
#include <hip/hip_runtime.h>
#include <unistd.h>
+#define CHECK(cmd) \
+ { \
+ hipError_t error = cmd; \
+ if (error != hipSuccess) \
+ { \
+ fprintf (stderr, "error: '%s'(%d) at %s:%d\n", \
+ hipGetErrorString (error), error, __FILE__, __LINE__); \
+ exit (EXIT_FAILURE); \
+ } \
+ }
+
__global__ static void
kernel1 ()
{}
@@ -50,6 +61,6 @@ main ()
kernel2<<<1, 1>>> ();
- hipDeviceSynchronize ();
+ CHECK (hipDeviceSynchronize ());
return 0;
}
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp
index 2de8fe2..cffeedb 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp
@@ -17,6 +17,18 @@
#include <hip/hip_runtime.h>
+#define CHECK(cmd) \
+ { \
+ hipError_t error = cmd; \
+ if (error != hipSuccess) \
+ { \
+ fprintf (stderr, "error: '%s'(%d) at %s:%d\n", \
+ hipGetErrorString (error), error, __FILE__, __LINE__); \
+ exit (EXIT_FAILURE); \
+ } \
+ }
+
+
__device__ static void
break_here_execee ()
{}
@@ -31,6 +43,6 @@ int
main ()
{
kernel<<<1, 1>>> ();
- hipDeviceSynchronize ();
+ CHECK (hipDeviceSynchronize ());
return 0;
}
diff --git a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp
index d64afdd..4ba406f 100644
--- a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp
+++ b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp
@@ -95,7 +95,7 @@ child (int argc, char **argv)
CHECK (hipSetDevice (dev_number));
kern<<<1, 1>>> ();
- hipDeviceSynchronize ();
+ CHECK (hipDeviceSynchronize ());
return 0;
}
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp
index bf1451a..d8ea869 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp
@@ -17,6 +17,17 @@
#include <hip/hip_runtime.h>
+#define CHECK(cmd) \
+ { \
+ hipError_t error = cmd; \
+ if (error != hipSuccess) \
+ { \
+ fprintf (stderr, "error: '%s'(%d) at %s:%d\n", \
+ hipGetErrorString (error), error, __FILE__, __LINE__); \
+ exit (EXIT_FAILURE); \
+ } \
+ }
+
__global__ void
kernel ()
{
@@ -28,6 +39,6 @@ int
main (int argc, char* argv[])
{
kernel<<<1, 1>>> ();
- hipDeviceSynchronize ();
+ CHECK (hipDeviceSynchronize ());
return 0;
}
diff --git a/gdb/testsuite/gdb.rocm/precise-memory.cpp b/gdb/testsuite/gdb.rocm/precise-memory.cpp
index 034f023..610f187 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory.cpp
+++ b/gdb/testsuite/gdb.rocm/precise-memory.cpp
@@ -17,6 +17,17 @@
#include <hip/hip_runtime.h>
+#define CHECK(cmd) \
+ { \
+ hipError_t error = cmd; \
+ if (error != hipSuccess) \
+ { \
+ fprintf (stderr, "error: '%s'(%d) at %s:%d\n", \
+ hipGetErrorString (error), error, __FILE__, __LINE__); \
+ exit (EXIT_FAILURE); \
+ } \
+ }
+
__global__ void
kernel ()
{
@@ -27,6 +38,6 @@ int
main (int argc, char* argv[])
{
kernel<<<1, 1>>> ();
- hipDeviceSynchronize ();
+ CHECK (hipDeviceSynchronize ());
return 0;
}
diff --git a/gdb/testsuite/lib/rocm.exp b/gdb/testsuite/lib/rocm.exp
index fcdf665..c2ffc57 100644
--- a/gdb/testsuite/lib/rocm.exp
+++ b/gdb/testsuite/lib/rocm.exp
@@ -93,7 +93,8 @@ gdb_caching_proc allow_hipcc_tests {} {
main ()
{
kern<<<1, 1>>> ();
- hipDeviceSynchronize ();
+ if (hipDeviceSynchronize () != hipSuccess)
+ return -1;
return 0;
}
} executable $flags]} {