drm/amdkfd: Align partition memory size to page size
authorPhilip Yang <Philip.Yang@amd.com>
Thu, 18 May 2023 19:08:16 +0000 (15:08 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 14:53:03 +0000 (10:53 -0400)
The compute partition memory size calculated from KFD_XCP_MEMORY_SIZE
may not align to page size if xcp_mgr->num_xcp_per_mem_partition is 6.

Change the KFD_XCP_MEMORY_SIZE macro to return page align size, so KFD
node memory size reported in sysfs is page align size, to avoid
application VRAM allocation failure because application may use the size
directly and Thunk requires the memory allocation size is page size
align.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c

index 5de92c9ab18f504b2d3afdb000660bd1c53c2395..66f80b9ab0c5dec64e49feda49d3b0caf14d7bf2 100644 (file)
@@ -804,7 +804,7 @@ u64 amdgpu_amdkfd_xcp_memory_size(struct amdgpu_device *adev, int xcp_id)
        if (adev->gmc.num_mem_partitions && xcp_id >= 0 && mem_id >= 0) {
                tmp = adev->gmc.mem_partitions[mem_id].size;
                do_div(tmp, adev->xcp_mgr->num_xcp_per_mem_partition);
-               return tmp;
+               return ALIGN_DOWN(tmp, PAGE_SIZE);
        } else {
                return adev->gmc.real_vram_size;
        }