<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:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        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:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Geneva;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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 lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">Copied register definitions below. I guess with this change, you changed how the IH block treat new interrupt when ring is full. Before this change, IH keep new interrupt in the ring and overwrite oldest interrupt. After your change,
 IH will simply drop new interrupt and keep old interrupt in the ring (keep wptr unchanged).
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Is above understanding correct? If yes, can you explain why the new scheme is more reliable? If this is more reliable, should we use this scheme for all 3 interrupt ring?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellpadding="0" width="100%" style="width:100.0%">
<tbody>
<tr>
<td width="29%" valign="top" style="width:29.76%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Geneva;color:black">RB_FULL_DRAIN_ENABLE<o:p></o:p></span></p>
</td>
<td width="9%" valign="top" style="width:9.92%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-size:9.0pt;font-family:Geneva;color:black">9<o:p></o:p></span></p>
</td>
<td width="9%" valign="top" style="width:9.92%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-size:9.0pt;font-family:Geneva;color:black">0x0<o:p></o:p></span></p>
</td>
<td width="49%" valign="top" style="width:49.58%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Geneva;color:#0000AA">When Ring Buffer is full, this enables draining of interrupts to prevent back pressure to IH clients.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:9.0pt;font-family:Geneva;color:#0000AA"> <u>POSSIBLE VALUES:</u><br>
      00 - Disable <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="29%" valign="top" style="width:29.76%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Geneva;color:black">WPTR_OVERFLOW_ENABLE<o:p></o:p></span></p>
</td>
<td width="9%" valign="top" style="width:9.92%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-size:9.0pt;font-family:Geneva;color:black">16<o:p></o:p></span></p>
</td>
<td width="9%" valign="top" style="width:9.92%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-size:9.0pt;font-family:Geneva;color:black">0x1<o:p></o:p></span></p>
</td>
<td width="49%" valign="top" style="width:49.58%;background:#E8CC80;padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Geneva;color:#0000AA">Ring Buffer write pointer overflow.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Geneva;color:#0000AA"> POSSIBLE VALUES:<br>
      00 - Disable <br>
      01 - Enable <o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Regards,<o:p></o:p></p>
<p class="MsoPlainText">Oak<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of Christian König<br>
Sent: Wednesday, March 6, 2019 4:29 AM<br>
To: amd-gfx@lists.freedesktop.org<br>
Subject: Re: [PATCH 1/3] drm/amdgpu: change Vega IH ring 1 config</p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Ping? Can anybody review this?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks,<o:p></o:p></p>
<p class="MsoPlainText">Christian.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Am 04.03.19 um 20:10 schrieb Christian König:<o:p></o:p></p>
<p class="MsoPlainText">> Disable overflow and enable full drain. This makes fault handling on
<o:p></o:p></p>
<p class="MsoPlainText">> ring 1 much more reliable since we don't generate back pressure any more.<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Signed-off-by: Christian König <<a href="mailto:christian.koenig@amd.com"><span style="color:windowtext;text-decoration:none">christian.koenig@amd.com</span></a>><o:p></o:p></p>
<p class="MsoPlainText">> ---<o:p></o:p></p>
<p class="MsoPlainText">>   drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 4 ++++<o:p></o:p></p>
<p class="MsoPlainText">>   1 file changed, 4 insertions(+)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c <o:p>
</o:p></p>
<p class="MsoPlainText">> b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c<o:p></o:p></p>
<p class="MsoPlainText">> index 6d1f804277f8..d4a3cc413af8 100644<o:p></o:p></p>
<p class="MsoPlainText">> --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c<o:p></o:p></p>
<p class="MsoPlainText">> +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c<o:p></o:p></p>
<p class="MsoPlainText">> @@ -203,6 +203,10 @@ static int vega10_ih_irq_init(struct
<o:p></o:p></p>
<p class="MsoPlainText">> amdgpu_device *adev)<o:p></o:p></p>
<p class="MsoPlainText">>   <o:p></o:p></p>
<p class="MsoPlainText">>                            ih_rb_cntl = RREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL_RING1);<o:p></o:p></p>
<p class="MsoPlainText">>                            ih_rb_cntl = vega10_ih_rb_cntl(ih, ih_rb_cntl);<o:p></o:p></p>
<p class="MsoPlainText">> +                         ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL,<o:p></o:p></p>
<p class="MsoPlainText">> +                                                                         WPTR_OVERFLOW_ENABLE, 0);<o:p></o:p></p>
<p class="MsoPlainText">> +                         ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL,<o:p></o:p></p>
<p class="MsoPlainText">> +                                                                         RB_FULL_DRAIN_ENABLE, 1);<o:p></o:p></p>
<p class="MsoPlainText">>                            WREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL_RING1, ih_rb_cntl);<o:p></o:p></p>
<p class="MsoPlainText">>   <o:p></o:p></p>
<p class="MsoPlainText">>                            /* set rptr, wptr to 0 */<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">_______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">amd-gfx mailing list<o:p></o:p></p>
<p class="MsoPlainText"><a href="mailto:amd-gfx@lists.freedesktop.org"><span style="color:windowtext;text-decoration:none">amd-gfx@lists.freedesktop.org</span></a><o:p></o:p></p>
<p class="MsoPlainText"><a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx"><span style="color:windowtext;text-decoration:none">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</span></a><o:p></o:p></p>
</div>
</body>
</html>