[PATCH 2/2] tests/amdgpu/gang_cs: skip test for some chips

vitaly.prosyak at amd.com vitaly.prosyak at amd.com
Sat Jun 22 22:52:16 UTC 2024


From: Vitaly Prosyak <vitaly.prosyak at amd.com>

Check if gang tests are enabled based on GPU information.
Gang tests are supported starting with Vega10, but are broken
on Navi10 and Navi14. This function mirrors the logic in amdgpu.

Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Christian Koenig <christian.koenig at amd.com>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Cc: Jesse Zhang <Jesse.Zhang at amd.com>
Suggested-by: Christian Koenig <christian.koenig at amd.com>
Signed-off-by: Vitaly Prosyak <vitaly.prosyak at amd.com>
---
 tests/amdgpu/amd_gang_cs.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/tests/amdgpu/amd_gang_cs.c b/tests/amdgpu/amd_gang_cs.c
index 722c376ee..699862670 100644
--- a/tests/amdgpu/amd_gang_cs.c
+++ b/tests/amdgpu/amd_gang_cs.c
@@ -9,10 +9,38 @@
 #include "lib/amdgpu/amd_ip_blocks.h"
 #include "lib/amdgpu/amd_memory.h"
 #include "lib/amdgpu/amd_cs_radv.h"
+#include "lib/amdgpu/amd_family.h"
 
 #define IB_SIZE	4096
 
+/**
+ * Check if gang tests are enabled based on GPU information.
+ *
+ * Gang tests are supported starting with Vega10 but are broken on Navi10 and Navi14.
+ * This function mirrors the logic in the following amdgpu code:
+ *
+ * void amdgpu_vm_manager_init(struct amdgpu_device *adev) {
+ *     adev->vm_manager.concurrent_flush = !(adev->asic_type < CHIP_VEGA10 ||
+ *                                           adev->asic_type == CHIP_NAVI10 ||
+ *                                           adev->asic_type == CHIP_NAVI14);
+ * }
+ *
+ * @param gpu_info: Pointer to the structure containing GPU information.
+ * @return: True if gang tests are enabled, false otherwise.
+ */
+static bool is_gang_tests_enable(const struct chip_info *pChip)
+{
+	/* Concurrent flushes are supported only on Vega10 and newer,
+	 * excluding Navi10 and Navi14 due to known issues.
+	 */
+	if (pChip->family < CHIP_VEGA10 ||
+		pChip->family == CHIP_NAVI10 ||
+		pChip->family == CHIP_NAVI14) {
+		return false;
+	}
 
+	return true;
+}
 
 static void
 prepare_compute_cp_packet(amdgpu_device_handle device,
@@ -233,6 +261,7 @@ igt_main
 		igt_assert_eq(r, 0);
 		r = setup_amdgpu_ip_blocks(major, minor, &gpu_info, device);
 		igt_assert_eq(r, 0);
+		igt_skip_on(!is_gang_tests_enable(g_pChip));
 		asic_rings_readness(device, 1, arr_cap);
 
 	}
-- 
2.25.1



More information about the igt-dev mailing list