[PATCH] drm/amdgpu: Fix GTT size reporting in amdgpu_ioctl

Chen, Guchun Guchun.Chen at amd.com
Tue Jul 5 14:28:41 UTC 2022


Hi Alex,

I think we need to revert this patch on amd-staging-drm-next branch, as its base commit like " drm/amdgpu: remove GTT accounting v2" does not present on 5.16. Instead, the series is part of upcoming 5.18 based amd-staging-drm-next branch. Otherwise, incorrect GTT size reporting switched from page to bytes will crash several vulkan APPs.

Regards,
Guchun

-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Alex Deucher
Sent: Saturday, June 11, 2022 12:01 AM
To: Michel Dänzer <michel at daenzer.net>
Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Pan, Xinhui <Xinhui.Pan at amd.com>; amd-gfx list <amd-gfx at lists.freedesktop.org>; Koenig, Christian <Christian.Koenig at amd.com>; Maling list - DRI developers <dri-devel at lists.freedesktop.org>
Subject: Re: [PATCH] drm/amdgpu: Fix GTT size reporting in amdgpu_ioctl

Applied.  Thanks!

Alex

On Fri, Jun 10, 2022 at 10:01 AM Michel Dänzer <michel at daenzer.net> wrote:
>
> From: Michel Dänzer <mdaenzer at redhat.com>
>
> The commit below changed the TTM manager size unit from pages to 
> bytes, but failed to adjust the corresponding calculations in 
> amdgpu_ioctl.
>
> Fixes: dfa714b88eb0 ("drm/amdgpu: remove GTT accounting v2")
> Bug: 
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitl
> ab.freedesktop.org%2Fdrm%2Famd%2F-%2Fissues%2F1930&data=05%7C01%7C
> guchun.chen%40amd.com%7C28ed180d765c4588474008da4afa68e1%7C3dd8961fe48
> 84e608e11a82d994e183d%7C0%7C0%7C637904736611555668%7CUnknown%7CTWFpbGZ
> sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3
> D%7C3000%7C%7C%7C&sdata=%2Bmr%2BJWj5q%2BfB04L4hmNSG%2BYpfhny6YayNV
> gt2xty6bo%3D&reserved=0
> Bug: 
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitl
> ab.freedesktop.org%2Fmesa%2Fmesa%2F-%2Fissues%2F6642&data=05%7C01%
> 7Cguchun.chen%40amd.com%7C28ed180d765c4588474008da4afa68e1%7C3dd8961fe
> 4884e608e11a82d994e183d%7C0%7C0%7C637904736611555668%7CUnknown%7CTWFpb
> GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
> %3D%7C3000%7C%7C%7C&sdata=yN1jFKsffHu2Ik2crsrRxGBxCRylXckSj9zILxTZ
> QzE%3D&reserved=0
> Signed-off-by: Michel Dänzer <mdaenzer at redhat.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index 801f6fa692e9..6de63ea6687e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -642,7 +642,6 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
>                             atomic64_read(&adev->visible_pin_size),
>                             vram_gtt.vram_size);
>                 vram_gtt.gtt_size = ttm_manager_type(&adev->mman.bdev, TTM_PL_TT)->size;
> -               vram_gtt.gtt_size *= PAGE_SIZE;
>                 vram_gtt.gtt_size -= atomic64_read(&adev->gart_pin_size);
>                 return copy_to_user(out, &vram_gtt,
>                                     min((size_t)size, 
> sizeof(vram_gtt))) ? -EFAULT : 0; @@ -675,7 +674,6 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
>                         mem.cpu_accessible_vram.usable_heap_size * 3 / 
> 4;
>
>                 mem.gtt.total_heap_size = gtt_man->size;
> -               mem.gtt.total_heap_size *= PAGE_SIZE;
>                 mem.gtt.usable_heap_size = mem.gtt.total_heap_size -
>                         atomic64_read(&adev->gart_pin_size);
>                 mem.gtt.heap_usage = 
> ttm_resource_manager_usage(gtt_man);
> --
> 2.36.1
>


More information about the dri-devel mailing list