[1/2] gdb/testsuite/rocm: Add the hip_devices_support_debug_multi_process proc

Message ID 20230630145755.6500-2-lancelot.six@amd.com
State New
Headers
Series Fix debugging multi inferiors using the ROCm runtime |

Commit Message

Lancelot SIX June 30, 2023, 2:57 p.m. UTC
  It is not possible to debug multiple processes simultaneously on all
generations of AMDGPU devices.  As some tests will need to debug
multiple inferiors using AMDGPU devices, we need to ensure that all
devices available have the required capability.  Failing to do so would
result in GDB not being able to debug all inferiors properly.

Add the hip_devices_support_debug_multi_process helper function used to
ensure that all devices available can debug multiple processes.
---
 gdb/testsuite/lib/rocm.exp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
  

Comments

Pedro Alves July 28, 2023, 6 p.m. UTC | #1
On 2023-06-30 15:57, Lancelot Six via Gdb-patches wrote:

> +
> +# Return true if all the devices supports debugging multiple processes

supports -> support

> +# using the GPU.
> +

Otherwise,
  Approved-By: Pedro Alves <pedro@palves.net>
  

Patch

diff --git a/gdb/testsuite/lib/rocm.exp b/gdb/testsuite/lib/rocm.exp
index 389d73bcaa5..850c37974b9 100644
--- a/gdb/testsuite/lib/rocm.exp
+++ b/gdb/testsuite/lib/rocm.exp
@@ -166,3 +166,23 @@  proc with_rocm_gpu_lock { body } {
 	return -code $code $result
     }
 }
+
+# Return true if all the devices supports debugging multiple processes
+# using the GPU.
+
+proc hip_devices_support_debug_multi_process {} {
+    set unsupported_targets \
+	{gfx900 gfx906 gfx908 gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032}
+
+    set targets [hcc_amdgpu_targets]
+    if { [llength $targets] == 0 } {
+	return 0
+    }
+
+    foreach target $targets {
+	if { [lsearch -exact $unsupported_targets $target] != -1 } {
+	    return 0
+	}
+    }
+    return 1
+}