[PATCH i-g-t V2] tests/amdgpu: fix VM test issue

Jesse Zhang jesse.zhang at amd.com
Fri Dec 15 03:23:21 UTC 2023


Test case name:igt at amdgpu/amd_vm at amdgpu-vm-unaligned-map
Fail error: "Starting subtest: amdgpu-vm-unaligned-map
(amd_vm:8876) CRITICAL: Test assertion failure function amdgpu_vm_unaligned_map, file ../tests/amdgpu/amd_vm.c:131:
(amd_vm:8876) CRITICAL: Failed assertion: r == 0
(amd_vm:8876) CRITICAL: Last errno: 12, Cannot allocate memory
(amd_vm:8876) CRITICAL: error: -12 != 0
Subtest amdgpu-vm-unaligned-map failed.

Because of some device don't have lots of memories,
such as mobile devices. So change test memory size for them.

Cc: Vitaly Prosyak <vitaly.prosyak at amd.com>
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>

Signed-off-by: Jesse Zhang <Jesse.Zhang at amd.com>
---
 tests/amdgpu/amd_vm.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tests/amdgpu/amd_vm.c b/tests/amdgpu/amd_vm.c
index 11be25ae8..d0cf3676d 100644
--- a/tests/amdgpu/amd_vm.c
+++ b/tests/amdgpu/amd_vm.c
@@ -115,11 +115,11 @@ amdgpu_vmid_reserve_test(amdgpu_device_handle device_handle,
 static void
 amdgpu_vm_unaligned_map(amdgpu_device_handle device_handle)
 {
-	const uint64_t map_size = (4ULL << 30) - (2 << 12);
+	uint64_t map_size = (4ULL << 30) - (2 << 12);
 	struct amdgpu_bo_alloc_request request = {};
 	amdgpu_bo_handle buf_handle;
 	amdgpu_va_handle handle;
-	uint64_t vmc_addr;
+	uint64_t vmc_addr, alignment = 1ULL << 30;
 	int r;
 
 	request.alloc_size = 4ULL << 30;
@@ -127,11 +127,18 @@ amdgpu_vm_unaligned_map(amdgpu_device_handle device_handle)
 	request.preferred_heap = AMDGPU_GEM_DOMAIN_VRAM;
 	request.flags = AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
 
-	r = amdgpu_bo_alloc(device_handle, &request, &buf_handle);
+	if (-ENOMEM == amdgpu_bo_alloc(device_handle, &request, &buf_handle)) {
+		/* Try allocate on the device of small memory */
+		request.alloc_size = 4ULL << 20;
+		map_size = (4ULL << 20) - (2 << 12);
+		alignment = 4ULL << 20;
+		r = amdgpu_bo_alloc(device_handle, &request, &buf_handle);
+	}
+
 	igt_assert_eq(r, 0);
 
 	r = amdgpu_va_range_alloc(device_handle, amdgpu_gpu_va_range_general,
-				4ULL << 30, 1ULL << 30, 0, &vmc_addr,
+				request.alloc_size, alignment, 0, &vmc_addr,
 				&handle, 0);
 	igt_assert_eq(r, 0);
 
-- 
2.25.1



More information about the igt-dev mailing list