aboutsummaryrefslogtreecommitdiffstats
path: root/tests/amdgpu/deadlock_tests.c
diff options
context:
space:
mode:
authorFlora Cui <flora.cui@amd.com>2019-03-18 16:45:31 +0800
committerMarek Olšák <marek.olsak@amd.com>2019-12-09 15:46:53 -0500
commit31a6ec141ad0f190af59a96d86f0ebe8fcee6287 (patch)
tree4e28e11698f8df6d39a85405f0cf5a2414a62f94 /tests/amdgpu/deadlock_tests.c
parent5e1f6533a0b15587220f661872c86981706b4d42 (diff)
downloadexternal_libdrm-31a6ec141ad0f190af59a96d86f0ebe8fcee6287.tar.gz
external_libdrm-31a6ec141ad0f190af59a96d86f0ebe8fcee6287.tar.bz2
external_libdrm-31a6ec141ad0f190af59a96d86f0ebe8fcee6287.zip
tests/amdgpu: add gfx ring bad slow draw test
for gfx9 Signed-off-by: Flora Cui <flora.cui@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'tests/amdgpu/deadlock_tests.c')
-rw-r--r--tests/amdgpu/deadlock_tests.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/amdgpu/deadlock_tests.c b/tests/amdgpu/deadlock_tests.c
index 0735a724..d6eb35b1 100644
--- a/tests/amdgpu/deadlock_tests.c
+++ b/tests/amdgpu/deadlock_tests.c
@@ -119,6 +119,7 @@ static void amdgpu_dispatch_hang_compute(void);
static void amdgpu_dispatch_hang_slow_gfx(void);
static void amdgpu_dispatch_hang_slow_compute(void);
static void amdgpu_draw_hang_gfx(void);
+static void amdgpu_draw_hang_slow_gfx(void);
CU_BOOL suite_deadlock_tests_enable(void)
{
@@ -188,6 +189,7 @@ CU_TestInfo deadlock_tests[] = {
{ "gfx ring bad slow dispatch test (set amdgpu.lockup_timeout=50)", amdgpu_dispatch_hang_slow_gfx },
{ "compute ring bad slow dispatch test (set amdgpu.lockup_timeout=50,50)", amdgpu_dispatch_hang_slow_compute },
{ "gfx ring bad draw test (set amdgpu.lockup_timeout=50)", amdgpu_draw_hang_gfx },
+ { "gfx ring slow bad draw test (set amdgpu.lockup_timeout=50)", amdgpu_draw_hang_slow_gfx },
CU_TEST_INFO_NULL,
};
@@ -526,3 +528,19 @@ static void amdgpu_draw_hang_gfx(void)
amdgpu_memcpy_draw_test(device_handle, ring_id, 0);
}
}
+
+static void amdgpu_draw_hang_slow_gfx(void)
+{
+ struct drm_amdgpu_info_hw_ip info;
+ uint32_t ring_id;
+ int r;
+
+ r = amdgpu_query_hw_ip_info(device_handle, AMDGPU_HW_IP_GFX, 0, &info);
+ CU_ASSERT_EQUAL(r, 0);
+
+ for (ring_id = 0; (1 << ring_id) & info.available_rings; ring_id++) {
+ amdgpu_memcpy_draw_test(device_handle, ring_id, 0);
+ amdgpu_memcpy_draw_hang_slow_test(device_handle, ring_id);
+ amdgpu_memcpy_draw_test(device_handle, ring_id, 0);
+ }
+}