<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p style="font-family:Arial;font-size:10pt;color:#0000FF;margin:5pt;" align="Left">
[AMD Official Use Only - General]<br>
</p>
<br>
<div>
<div style="color: rgb(33, 33, 33); background-color: rgb(255, 255, 255);" dir="auto">
Jesse informed me that this patch solves the issue, he tested all the cases.<span></span></div>
<div style="color: rgb(33, 33, 33); background-color: rgb(255, 255, 255);" dir="auto">
<br>
</div>
<div style="color: rgb(33, 33, 33); background-color: rgb(255, 255, 255);" dir="auto">
Thanks,</div>
<div style="color: rgb(33, 33, 33); background-color: rgb(255, 255, 255);" dir="auto">
Arun</div>
<div id="ms-outlook-mobile-signature" dir="auto">
<div><br>
</div>
Get <a href="https://aka.ms/AAb9ysg">Outlook for Android</a></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Christian König <ckoenig.leichtzumerken@gmail.com><br>
<b>Sent:</b> Wednesday, December 7, 2022 8:53:25 PM<br>
<b>To:</b> Alex Deucher <alexdeucher@gmail.com>; Zhang, Jesse(Jie) <Jesse.Zhang@amd.com><br>
<b>Cc:</b> Zhang, Yifan <Yifan1.Zhang@amd.com>; amd-gfx <amd-gfx-bounces@lists.freedesktop.org>; Paneer Selvam, Arunpravin <Arunpravin.PaneerSelvam@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>; Deucher, Alexander <Alexander.Deucher@amd.com>;
 Koenig, Christian <Christian.Koenig@amd.com><br>
<b>Subject:</b> Re: [PATCH] drm/amdgpu: try allowed domain when pin framebuffer failed</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">I would go a step further and just allow GTT domain on ASICs != CARRIZO
<br>
| STONEY.<br>
<br>
I can't see a good reason we should still have any limitation here, VRAM <br>
doesn't have any advantage any more as far as I know.<br>
<br>
Christian.<br>
<br>
Am 07.12.22 um 16:10 schrieb Alex Deucher:<br>
> Does this patch fix the problem?<br>
><br>
> Alex<br>
><br>
> On Wed, Dec 7, 2022 at 2:27 AM Zhang, Jesse(Jie) <Jesse.Zhang@amd.com> wrote:<br>
>> [AMD Official Use Only - General]<br>
>><br>
>><br>
>>      drm/amdgpu: try allowed domain when pin framebuffer failed.<br>
>><br>
>><br>
>><br>
>>      [WHY&HOW]<br>
>><br>
>><br>
>><br>
>>      in some scenarios, the allocate memory often failed. such as do hot plug or play games.<br>
>><br>
>>      so we can try allowed domain, if the preferred domain cannot allocate memory.<br>
>><br>
>><br>
>><br>
>>      Signed-off-by: jie1zhan jesse.zhang@amd.com<br>
>><br>
>>      Change-Id: I4b62e2ff072d02c515f901000a5789339d481273<br>
>><br>
>><br>
>><br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c<br>
>><br>
>> index 1ae0c8723348..05fcaf7f9d92 100644<br>
>><br>
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c<br>
>><br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c<br>
>><br>
>> @@ -39,6 +39,7 @@<br>
>><br>
>> #include "amdgpu.h"<br>
>><br>
>> #include "amdgpu_trace.h"<br>
>><br>
>> #include "amdgpu_amdkfd.h"<br>
>><br>
>> +#include "amdgpu_display.h"<br>
>><br>
>><br>
>><br>
>> /**<br>
>><br>
>>    * DOC: amdgpu_object<br>
>><br>
>> @@ -942,8 +943,14 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,<br>
>><br>
>>                          bo->placements[i].lpfn = lpfn;<br>
>><br>
>>          }<br>
>><br>
>><br>
>><br>
>> +       retry:<br>
>><br>
>>          r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);<br>
>><br>
>>          if (unlikely(r)) {<br>
>><br>
>> +               //try allowed domain when pin failed. just a workaround.<br>
>><br>
>> +               if (unlikely(r == -ENOMEM) && domain != bo->allowed_domains) {<br>
>><br>
>> +                       amdgpu_bo_placement_from_domain(bo, bo->allowed_domains);<br>
>><br>
>> +                       goto retry;<br>
>><br>
>> +               }<br>
>><br>
>>                  dev_err(adev->dev, "%p pin failed\n", bo);<br>
>><br>
>>                  goto error;<br>
>><br>
>>          }<br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>