<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Ok, thanks!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"> Grodzovsky, Andrey
<br>
<b>Sent:</b> Thursday, February 01, 2018 12:59 AM<br>
<b>To:</b> Yu, Xiangliang <Xiangliang.Yu@amd.com>; amd-gfx@lists.freedesktop.org; Deng, Emily <Emily.Deng@amd.com><br>
<b>Cc:</b> Deucher, Alexander <Alexander.Deucher@amd.com>; Koenig, Christian <Christian.Koenig@amd.com>; Wu, Haisheng <Haisheng.Wu@amd.com><br>
<b>Subject:</b> Re: [PATCH] Revert "drm/amdgpu/gfx8: Fix compute ring failure after resetting"<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On 01/25/2018 11:33 PM, Yu, Xiangliang wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>You can add amdgpu_sriov_vf() check to avoid breaking sriov.<o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><br>
+ Haisheng<br>
<br>
As found out after more debugging  and discussion with Haisheng from HW team, the sequence introduced by this change is is wrong, it causes compute rings test failure because "t<span style="font-size:11.0pt;font-family:"Calibri",sans-serif">he ring buffer has
 to be filled with valid packets (such as NOPs) first before submitting MAP_QUEUEs packet into KIQ. Once a compute engine is mapped, it will immediately execute the ring buffer if the RTPR is not equal to the WTPR from the MQD. It could lead to engine hang
 if the ring buffer filled with random data."<br>
<br>
</span>Hence we would like to revert this change in amd-staging-drm-next and continue investigation on the SR-IOV side why the correct programming sequence doesn't work there. I myself currently working on setting up SR-IOV setup to take a look at that.<br>
<br>
Thanks,<br>
Andrey<br>
   <o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre><o:p> </o:p></pre>
<pre><o:p> </o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>-----Original Message-----<o:p></o:p></pre>
<pre>From: Grodzovsky, Andrey<o:p></o:p></pre>
<pre>Sent: Friday, January 26, 2018 11:29 AM<o:p></o:p></pre>
<pre>To: Yu, Xiangliang <a href="mailto:Xiangliang.Yu@amd.com"><Xiangliang.Yu@amd.com></a>; amd-<o:p></o:p></pre>
<pre><a href="mailto:gfx@lists.freedesktop.org">gfx@lists.freedesktop.org</a><o:p></o:p></pre>
<pre>Cc: Deucher, Alexander <a href="mailto:Alexander.Deucher@amd.com"><Alexander.Deucher@amd.com></a>; Koenig, Christian<o:p></o:p></pre>
<pre><a href="mailto:Christian.Koenig@amd.com"><Christian.Koenig@amd.com></a><o:p></o:p></pre>
<pre>Subject: Re: [PATCH] Revert "drm/amdgpu/gfx8: Fix compute ring failure<o:p></o:p></pre>
<pre>after resetting"<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>No, just bare metal, I assumed your problem was with compute ring test<o:p></o:p></pre>
<pre>failure which I didn't see. Can you please recheck if reverting this still failing<o:p></o:p></pre>
<pre>on SRIOV ?<o:p></o:p></pre>
<pre>If so we obviously need to keep looking how to fix it.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Thanks,<o:p></o:p></pre>
<pre>Andrey<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>________________________________________<o:p></o:p></pre>
<pre>From: Yu, Xiangliang<o:p></o:p></pre>
<pre>Sent: 25 January 2018 20:59:45<o:p></o:p></pre>
<pre>To: Grodzovsky, Andrey; <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><o:p></o:p></pre>
<pre>Cc: Deucher, Alexander; Grodzovsky, Andrey; Koenig, Christian<o:p></o:p></pre>
<pre>Subject: RE: [PATCH] Revert "drm/amdgpu/gfx8: Fix compute ring failure<o:p></o:p></pre>
<pre>after resetting"<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Did you test reset case in sriov?<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>-----Original Message-----<o:p></o:p></pre>
<pre>From: amd-gfx [<a href="mailto:amd-gfx-bounces@lists.freedesktop.org">mailto:amd-gfx-bounces@lists.freedesktop.org</a>] On Behalf<o:p></o:p></pre>
<pre>Of Andrey Grodzovsky<o:p></o:p></pre>
<pre>Sent: Friday, January 26, 2018 7:07 AM<o:p></o:p></pre>
<pre>To: <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><o:p></o:p></pre>
<pre>Cc: Deucher, Alexander <a href="mailto:Alexander.Deucher@amd.com"><Alexander.Deucher@amd.com></a>; Grodzovsky,<o:p></o:p></pre>
</blockquote>
<pre>Andrey<o:p></o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre><a href="mailto:Andrey.Grodzovsky@amd.com"><Andrey.Grodzovsky@amd.com></a>; Yu, Xiangliang<o:p></o:p></pre>
</blockquote>
<pre><a href="mailto:Xiangliang.Yu@amd.com"><Xiangliang.Yu@amd.com></a>;<o:p></o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Koenig, Christian <a href="mailto:Christian.Koenig@amd.com"><Christian.Koenig@amd.com></a><o:p></o:p></pre>
<pre>Subject: [PATCH] Revert "drm/amdgpu/gfx8: Fix compute ring failure<o:p></o:p></pre>
<pre>after resetting"<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>This reverts commit 75737cb4eb78c7f185e4700b4aa20cf7a3381aca.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Fixes GFX ring test failure after HW reset.<o:p></o:p></pre>
<pre>No compute ring test failures were observed with the change reverted.<o:p></o:p></pre>
<pre>So seems like whatever problem that change was addressing is not<o:p></o:p></pre>
<pre>present anymore.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Signed-off-by: Andrey Grodzovsky <a href="mailto:andrey.grodzovsky@amd.com"><andrey.grodzovsky@amd.com></a><o:p></o:p></pre>
<pre>---<o:p></o:p></pre>
<pre> drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 10 +++-------<o:p></o:p></pre>
<pre> 1 file changed, 3 insertions(+), 7 deletions(-)<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<o:p></o:p></pre>
<pre>b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<o:p></o:p></pre>
<pre>index 1207f36..8a65b53 100644<o:p></o:p></pre>
<pre>--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<o:p></o:p></pre>
<pre>+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<o:p></o:p></pre>
<pre>@@ -4847,6 +4847,9 @@ static int gfx_v8_0_kcq_init_queue(struct<o:p></o:p></pre>
<pre>amdgpu_ring *ring)<o:p></o:p></pre>
<pre>              /* reset MQD to a clean status */<o:p></o:p></pre>
<pre>              if (adev->gfx.mec.mqd_backup[mqd_idx])<o:p></o:p></pre>
<pre>                      memcpy(mqd, adev-<o:p></o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>gfx.mec.mqd_backup[mqd_idx], sizeof(struct vi_mqd_allocation));<o:p></o:p></pre>
</blockquote>
<pre>+             /* reset ring buffer */<o:p></o:p></pre>
<pre>+             ring->wptr = 0;<o:p></o:p></pre>
<pre>+             amdgpu_ring_clear_ring(ring);<o:p></o:p></pre>
<pre>      } else {<o:p></o:p></pre>
<pre>              amdgpu_ring_clear_ring(ring);<o:p></o:p></pre>
<pre>      }<o:p></o:p></pre>
<pre>@@ -4921,13 +4924,6 @@ static int gfx_v8_0_kiq_resume(struct<o:p></o:p></pre>
<pre>amdgpu_device *adev)<o:p></o:p></pre>
<pre>      /* Test KCQs */<o:p></o:p></pre>
<pre>      for (i = 0; i < adev->gfx.num_compute_rings; i++) {<o:p></o:p></pre>
<pre>              ring = &adev->gfx.compute_ring[i];<o:p></o:p></pre>
<pre>-             if (adev->in_gpu_reset) {<o:p></o:p></pre>
<pre>-                     /* move reset ring buffer to here to workaround<o:p></o:p></pre>
<pre>-                      * compute ring test failed<o:p></o:p></pre>
<pre>-                      */<o:p></o:p></pre>
<pre>-                     ring->wptr = 0;<o:p></o:p></pre>
<pre>-                     amdgpu_ring_clear_ring(ring);<o:p></o:p></pre>
<pre>-             }<o:p></o:p></pre>
<pre>              ring->ready = true;<o:p></o:p></pre>
<pre>              r = amdgpu_ring_test_ring(ring);<o:p></o:p></pre>
<pre>              if (r)<o:p></o:p></pre>
<pre>--<o:p></o:p></pre>
<pre>2.7.4<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>amd-gfx mailing list<o:p></o:p></pre>
<pre><a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><o:p></o:p></pre>
<pre><a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><o:p></o:p></pre>
</blockquote>
</blockquote>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>