[igt-dev] [PATCH V3 i-g-t 2/2] test/amdgpu: add apu check for pciplug test

Jesse Zhang jesse.zhang at amd.com
Wed Nov 8 02:57:38 UTC 2023


It is integrated with cpu,
for APU(Accelerated Processing Unit CPU + iGPU).
So hotplug test should be unnecessary for it.

V3:
 - place the APU check in particular subtests.(Kamil)
 - Add igt_info about skipping tests (Vitaly)

Cc: Vitaly Prosyak <vitaly.prosyak at amd.com>
Cc: Luben Tuikov <luben.tuikov at amd.com>
Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Christian Koenig <christian.koenig at amd.com>
Cc: Tim Huang <tim.huang at amd.com>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>

Signed-off-by: Jesse Zhang <Jesse.Zhang at amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak at amd.com>
---
 lib/amdgpu/amd_pci_unplug.c | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/lib/amdgpu/amd_pci_unplug.c b/lib/amdgpu/amd_pci_unplug.c
index 9811e0cc2..1e795757d 100644
--- a/lib/amdgpu/amd_pci_unplug.c
+++ b/lib/amdgpu/amd_pci_unplug.c
@@ -92,6 +92,7 @@ amdgpu_hotunplug_setup_test(bool render_mode, const struct amd_pci_unplug_setup
 	bool ret = false;
 	int r;
 	uint32_t  major_version, minor_version;
+	struct amdgpu_gpu_info gpu_info = {0};
 
 	unplug->num_devices = amdgpu_open_devices(render_mode, MAX_CARDS_SUPPORTED,
 											  unplug->drm_amdgpu_fds);
@@ -101,7 +102,7 @@ amdgpu_hotunplug_setup_test(bool render_mode, const struct amd_pci_unplug_setup
 	if (setup->open_device && setup->open_device2 && unplug->num_devices < 2) {
 		/*Not enough board for the test*/
 		printf("SKIP ... more than 1 GPU is required for this test\n");
-		goto release;
+		igt_skip_on(!ret);
 	}
 
 	tmp_str = amdgpu_get_device_from_fd(unplug->drm_amdgpu_fds[0]);
@@ -115,8 +116,19 @@ amdgpu_hotunplug_setup_test(bool render_mode, const struct amd_pci_unplug_setup
 	if (r != 0)
 		goto release;
 
-	if (minor_version < setup->minor_version_req)
-		goto release;
+	if (minor_version < setup->minor_version_req) {
+		igt_info("SKIP ... minor_version:%d mismatch, required: %d for this test\n",
+			minor_version, setup->minor_version_req);
+		igt_skip_on(!ret);
+	}
+
+	/* skip hotplug test on APU (Accelerated Processing Unit CPU + iGPU) */
+	r = amdgpu_query_gpu_info(unplug->device_handle, &gpu_info);
+	igt_assert_eq(r, 0);
+	if (gpu_info.ids_flags & AMDGPU_IDS_FLAGS_FUSION) {
+		igt_info("SKIP ... APU does not require this test\n");
+		igt_skip_on(!ret);
+	}
 
 	if (!setup->open_device) {
 			/* device handle is not always required for test */
@@ -130,10 +142,22 @@ amdgpu_hotunplug_setup_test(bool render_mode, const struct amd_pci_unplug_setup
 						   &minor_version, &unplug->device_handle2);
 		if (r != 0)
 			goto release;
-		if (minor_version < setup->minor_version_req)
-			goto release;
+		if (minor_version < setup->minor_version_req) {
+			igt_info("SKIP ... minor_version:%d mismatch, required: %d for this test\n",
+				minor_version, setup->minor_version_req);
+			igt_skip_on(!ret);
+		}
+
+		/* skip hotplug test on APU (Accelerated Processing Unit CPU + iGPU) */
+		r = amdgpu_query_gpu_info(unplug->device_handle2, &gpu_info);
+		igt_assert_eq(r, 0);
+		if (gpu_info.ids_flags & AMDGPU_IDS_FLAGS_FUSION) {
+			igt_info("SKIP ... APU does not require this test\n");
+			igt_skip_on(!ret);
+		}
 	}
 	ret = true;
+
 release:
 	return ret;
 }
-- 
2.25.1



More information about the igt-dev mailing list