<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:11pt;color:#0078D7;margin:5pt;" align="Left">
[AMD Official Use Only - Internal Distribution Only]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Hi Harry,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Checked Lee Starnes's patch. It does not fix the issue but does preserve the tradition of assigning the number of probed modes to aconnector->num_modes, which appears elsewhere in AMD code. I observed in some cases the memory leak is not reproducing (or not
 detected) even without mine or Lee's fix. Maybe that's why Lee thinks it may fix the leak.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Another way to fix the issue is to not wipe out the probed list by calling INIT_LIST_HEAD() in amdgpu_dm_connector_ddc_get_modes(). But I am not entirely sure what other impact will that do.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I am checking out how everyone is handling resume from S3 so would like some second opinions.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Regards</div>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Regards</div>
<div id="Signature">
<div>
<div></div>
<div></div>
<div></div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p style="margin-top:0px; margin-bottom:0px; margin-top:0; margin-bottom:0"></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
<span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black"><u><b>Stylon Wang</b></u></span></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
<span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black">MTS Software Development Eng.  |<b>  AMD</b><br>
Display Solution Team</span></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
<span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black"><b style="color:rgb(32,31,30); font-family:Calibri,sans-serif; font-size:14.6667px; background-color:rgb(255,255,255)"><span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black">O</span></b><span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black; background-color:rgb(255,255,255)"> +(886)
 2-3789-3667 ext. 23667  <b>C</b> +(886) 921-897-142</span><br>
</span></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
<b><span style="margin:0px; font-size:9pt; color:rgb(242,101,34); letter-spacing:-1.4pt">----------------------------------------------------------------------------------------------------------------------------------</span></b><b><span style="margin:0px; font-size:9pt; color:rgb(242,101,34)"></span></b></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
<span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black"><span tabindex="0" style="margin:0px; padding:1px 0px; border-width:0px 0px 1px; border-bottom-style:dashed">6F, 3, YuanCyu St (NanKang Software Park) Taipei, Taiwan</span></span></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
<span style="margin:0px; font-size:9pt; font-family:Arial,sans-serif; color:black"><a href="https://www.facebook.com/AMD" target="_blank" rel="noopener noreferrer" style="margin:0px"><span style="margin:0px">Facebook</span></a> |  <a href="https://twitter.com/AMD" target="_blank" rel="noopener noreferrer" style="margin:0px"><span style="margin:0px">Twitter</span></a> |  <a href="http://www.amd.com/" target="_blank" rel="noopener noreferrer" style="margin:0px"><span style="margin:0px">amd.com</span></a></span><span style="margin:0px; font-size:10pt; font-family:Arial,sans-serif; color:black"> </span></p>
<p style="margin:0in 0in 0.0001pt; font-size:11pt; font-family:Calibri,sans-serif; color:rgb(32,31,30); text-align:start; background-color:rgb(255,255,255)">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-top:0; margin-bottom:0"></p>
</div>
</div>
</div>
</div>
<div id="appendonsend"></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> Deucher, Alexander <Alexander.Deucher@amd.com><br>
<b>Sent:</b> November 11, 2020 12:55 AM<br>
<b>To:</b> Wentland, Harry <Harry.Wentland@amd.com>; Wang, Chao-kai (Stylon) <Stylon.Wang@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Cc:</b> Kazlauskas, Nicholas <Nicholas.Kazlauskas@amd.com><br>
<b>Subject:</b> Re: [PATCH] drm/amd/display: Fix memory leaks in S3 resume</font>
<div> </div>
</div>
<style type="text/css" style="display:none">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<p align="Left" style="font-family:Arial; font-size:11pt; color:#0078D7; margin:5pt">
[AMD Official Use Only - Internal Distribution Only]<br>
</p>
<br>
<div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Ah, sorry, I missed that part of the patch.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Alex</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div id="x_appendonsend"></div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Wentland, Harry <Harry.Wentland@amd.com><br>
<b>Sent:</b> Tuesday, November 10, 2020 11:42 AM<br>
<b>To:</b> Deucher, Alexander <Alexander.Deucher@amd.com>; Wang, Chao-kai (Stylon) <Stylon.Wang@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Cc:</b> Kazlauskas, Nicholas <Nicholas.Kazlauskas@amd.com><br>
<b>Subject:</b> Re: [PATCH] drm/amd/display: Fix memory leaks in S3 resume</font>
<div> </div>
</div>
<div>It's missing the "drm_connector_list_update" call which I assume is important.<br>
<br>
Stylon, can you review Lee Starnes's patch? Is the drm_connector_list_update call maybe not needed?<br>
<br>
Thanks,<br>
Harry<br>
<br>
<div class="x_x_moz-cite-prefix">On 2020-11-10 11:26 a.m., Deucher, Alexander wrote:<br>
</div>
<blockquote type="cite"><style type="text/css" style="display:none">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<p align="Left" style="font-family:Arial; font-size:11pt; color:#0078D7; margin:5pt">
[AMD Official Use Only - Internal Distribution Only]<br>
</p>
<br>
<div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Lee Starnes just sent the exact same patch yesterday.  Please review that one:</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<a href="https://patchwork.freedesktop.org/patch/399497/" id="LPlnk260581">https://patchwork.freedesktop.org/patch/399497/</a><br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Alex</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Wentland, Harry
<a class="x_x_moz-txt-link-rfc2396E" href="mailto:Harry.Wentland@amd.com"><Harry.Wentland@amd.com></a><br>
<b>Sent:</b> Tuesday, November 10, 2020 9:27 AM<br>
<b>To:</b> Wang, Chao-kai (Stylon) <a class="x_x_moz-txt-link-rfc2396E" href="mailto:Stylon.Wang@amd.com">
<Stylon.Wang@amd.com></a>; <a class="x_x_moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">
amd-gfx@lists.freedesktop.org</a> <a class="x_x_moz-txt-link-rfc2396E" href="mailto:amd-gfx@lists.freedesktop.org">
<amd-gfx@lists.freedesktop.org></a><br>
<b>Cc:</b> Kazlauskas, Nicholas <a class="x_x_moz-txt-link-rfc2396E" href="mailto:Nicholas.Kazlauskas@amd.com">
<Nicholas.Kazlauskas@amd.com></a>; Deucher, Alexander <a class="x_x_moz-txt-link-rfc2396E" href="mailto:Alexander.Deucher@amd.com">
<Alexander.Deucher@amd.com></a><br>
<b>Subject:</b> Re: [PATCH] drm/amd/display: Fix memory leaks in S3 resume</font>
<div> </div>
</div>
<div class="x_x_BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="x_x_PlainText">On 2020-11-10 2:49 a.m., Stylon Wang wrote:<br>
> EDID parsing in S3 resume pushes new display modes<br>
> to probed_modes list but doesn't consolidate to actual<br>
> mode list. This creates a race condition when<br>
> amdgpu_dm_connector_ddc_get_modes() re-initializes the<br>
> list head without walking the list and results in  memory leak.<br>
> <br>
> Signed-off-by: Stylon Wang <a class="x_x_moz-txt-link-rfc2396E" href="mailto:stylon.wang@amd.com">
<stylon.wang@amd.com></a><br>
<br>
Looks reasonable to me but haven't had a chance to understand whether <br>
this is the best solution.<br>
<br>
Acked-by: Harry Wentland <a class="x_x_moz-txt-link-rfc2396E" href="mailto:harry.wentland@amd.com">
<harry.wentland@amd.com></a><br>
<br>
Harry<br>
<br>
> ---<br>
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++-<br>
>   1 file changed, 2 insertions(+), 1 deletion(-)<br>
> <br>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c<br>
> index 0b6adf23d316..715e0bd489f8 100644<br>
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c<br>
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c<br>
> @@ -2337,7 +2337,8 @@ void amdgpu_dm_update_connector_after_detect(<br>
>   <br>
>                        drm_connector_update_edid_property(connector,<br>
>                                                           aconnector->edid);<br>
> -                     drm_add_edid_modes(connector, aconnector->edid);<br>
> +                     aconnector->num_modes = drm_add_edid_modes(connector, aconnector->edid);<br>
> +                     drm_connector_list_update(connector);<br>
>   <br>
>                        if (aconnector->dc_link->aux_mode)<br>
>                                drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,<br>
> <br>
</div>
</span></font></div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</div>
</body>
</html>