[PATCH] drm/amdgpu: try allowed domain when pin framebuffer failed

Christian König christian.koenig at amd.com
Wed Dec 7 07:43:13 UTC 2022


Am 07.12.22 um 08:27 schrieb Zhang, Jesse(Jie):
>
> [AMD Official Use Only - General]
>
>
>     drm/amdgpu: try allowed domain when pin framebuffer failed.
>
>     [WHY&HOW]
>
>     in some scenarios, the allocate memory often failed. such as do 
> hot plug or play games.
>
>     so we can try allowed domain, if the preferred domain cannot 
> allocate memory.
>

Not sure why you send it again, but this patch is still a pretty clear NAK.

Christian.

>     Signed-off-by: jie1zhan jesse.zhang at amd.com
>
>     Change-Id: I4b62e2ff072d02c515f901000a5789339d481273
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>
> index 1ae0c8723348..05fcaf7f9d92 100644
>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>
> @@ -39,6 +39,7 @@
>
> #include "amdgpu.h"
>
> #include "amdgpu_trace.h"
>
> #include "amdgpu_amdkfd.h"
>
> +#include "amdgpu_display.h"
>
> /**
>
>   * DOC: amdgpu_object
>
> @@ -942,8 +943,14 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo 
> *bo, u32 domain,
>
>         bo->placements[i].lpfn = lpfn;
>
>         }
>
> +       retry:
>
>         r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
>
>         if (unlikely(r)) {
>
> +               //try allowed domain when pin failed. just a workaround.
>
> +               if (unlikely(r == -ENOMEM) && domain != 
> bo->allowed_domains) {
>
> + amdgpu_bo_placement_from_domain(bo, bo->allowed_domains);
>
> +                       goto retry;
>
> +               }
>
>                 dev_err(adev->dev, "%p pin failed\n", bo);
>
>                 goto error;
>
>         }
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20221207/0b14b2d2/attachment-0001.htm>


More information about the amd-gfx mailing list