<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">
<blockquote type="cite"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Although KMD now use a cache way to give libdrm
the CC_RB_BACKEND_DISABLE value, but KMD still need to read it
at least one shot during loading driver right ?</span></blockquote>
Correct, but we do this while having exclusive access.<br>
<br>
<blockquote type="cite"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"></span><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Not only tlb flush, other ring’s vm flush of VF2
can all be ruined by this register’s reading from VF1, right ?</span></blockquote>
Not sure about that. But as I said that problem is not limited to
VM flushes, e.g. when you access this register any other register
write or read can be affected.<br>
<br>
May theory is that accessing those registers sometimes times out
when the MC is to busy or something like this and this timeout in
turn results in a register bus reset which affects all other
ongoing operations as well.<br>
<br>
<blockquote type="cite">
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">How you solve that ?</span></p>
<span style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"></span></blockquote>
Stop accessing the affected registers as much as possible, there
is no really any other known workaround.<br>
<br>
The risk by accessing it when the driver loads is minimal, we just
need to make sure that we don't touch them during world switch.<br>
<br>
Regards,<br>
Christian.<br>
<br>
Am 08.03.2018 um 11:11 schrieb Liu, Monk:<br>
</div>
<blockquote type="cite"
cite="mid:BLUPR12MB044982457323EEB3BFC1E39E84DF0@BLUPR12MB0449.namprd12.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
<style><!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@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:"\@宋体";
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:"Courier New \;color\:\#D4D4D4";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Courier New \;color\:\#569CD6";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Courier New \;color\:\#DCDCAA";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Courier New \;color\:\#B5CEA8";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Courier New \;color\:\#9CDCFE";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Courier New \;color\:\#C586C0";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:宋体;
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;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:宋体;
color:black;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Courier New",serif;
color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:宋体;
color:black;}
p.xmsonormal, li.xmsonormal, div.xmsonormal
{mso-style-name:x_msonormal;
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:宋体;
color:black;}
p.xmsonormal0, li.xmsonormal0, div.xmsonormal0
{mso-style-name:x_msonormal0;
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:宋体;
color:black;}
p.xmsochpdefault, li.xmsochpdefault, div.xmsochpdefault
{mso-style-name:x_msochpdefault;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:宋体;
color:black;}
span.xemailstyle21
{mso-style-name:x_emailstyle21;
font-family:等线;
color:windowtext;}
span.xxapple-converted-space
{mso-style-name:x_xapple-converted-space;}
span.EmailStyle25
{mso-style-type:personal;
font-family:等线;
color:windowtext;}
span.EmailStyle26
{mso-style-type:personal;
font-family:等线;
color:windowtext;}
span.EmailStyle30
{mso-style-type:personal-reply;
font-family:等线;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
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]-->
<div class="WordSection1">
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">To be more specific let me give you an example
we face with now:<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Although KMD now use a cache way to give libdrm
the CC_RB_BACKEND_DISABLE value, but KMD still need to read
it at least one shot during loading driver right ?<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">For SR-IOV there is still chance that VF2 is
doing CPU based tlb flush while VF1 is doing driver loading,
so there are chance that tlb flush of VF2 was ruined by
<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">The driver loading (one shot
CC_RB_BACKEND_DISABLE reading).<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Not only tlb flush, other ring’s vm flush of
VF2 can all be ruined by this register’s reading from VF1,
right ?<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">How you solve that ?<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">/Monk<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US"> amd-gfx
[<a class="moz-txt-link-freetext" href="mailto:amd-gfx-bounces@lists.freedesktop.org">mailto:amd-gfx-bounces@lists.freedesktop.org</a>]
<b>On Behalf Of </b>Liu, Monk<br>
<b>Sent:</b> 2018</span><span
style="font-size:11.0pt;color:windowtext">年</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US">3</span><span
style="font-size:11.0pt;color:windowtext">月</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US">8</span><span
style="font-size:11.0pt;color:windowtext">日</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US"> 18:03<br>
<b>To:</b> Koenig, Christian
<a class="moz-txt-link-rfc2396E" href="mailto:Christian.Koenig@amd.com"><Christian.Koenig@amd.com></a>; Deucher, Alexander
<a class="moz-txt-link-rfc2396E" href="mailto:Alexander.Deucher@amd.com"><Alexander.Deucher@amd.com></a>; Mao, David
<a class="moz-txt-link-rfc2396E" href="mailto:David.Mao@amd.com"><David.Mao@amd.com></a><br>
<b>Cc:</b> Jin, Jian-Rong <a class="moz-txt-link-rfc2396E" href="mailto:Jian-Rong.Jin@amd.com"><Jian-Rong.Jin@amd.com></a>;
<a class="moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
<b>Subject:</b> RE: deprecated register issues<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Yeah, I agree with you we</span><span
style="font-size:10.5pt;font-family:等线;color:windowtext">’<span
lang="EN-US">d better find all those registers<o:p></o:p></span></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Stitch together the REQ and ACK part only avoid
this issue for vm flush only, and we may still hit the issue
in other place, I knew it.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">The frustrating job is how can we find all
those registers ?<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">And more is since this CC_RB_BACKEND_DISABLE
register is not deprecated (confirmed with David M), and
driver indeed nee to read it<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">How could we avoid this reading cause vm hub
broken ?<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">I believe like you said there are a bunch of
registers (not really deprecated ) reading would cause vm
hub broken, how could we still read<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">Them when we want but also not to trigger the
world switch issue ?
<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">looks to me there is no way to do that, even if
you already find out all of those registers, we still need
to access them, so the world switch (or other issues)<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">are still going to fail, and that</span><span
style="font-size:10.5pt;font-family:等线;color:windowtext">’<span
lang="EN-US">s why I think the plan B at least have its
reason to stand there.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">any thought ?<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US">/Monk<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线;color:windowtext"
lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US"> Christian König [<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
moz-do-not-send="true">mailto:ckoenig.leichtzumerken@gmail.com</a>]
<br>
<b>Sent:</b> 2018</span><span
style="font-size:11.0pt;color:windowtext">年</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US">3</span><span
style="font-size:11.0pt;color:windowtext">月</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US">8</span><span
style="font-size:11.0pt;color:windowtext">日</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"
lang="EN-US"> 17:41<br>
<b>To:</b> Liu, Monk <<a
href="mailto:Monk.Liu@amd.com" moz-do-not-send="true">Monk.Liu@amd.com</a>>;
Deucher, Alexander <<a
href="mailto:Alexander.Deucher@amd.com"
moz-do-not-send="true">Alexander.Deucher@amd.com</a>>;
Koenig, Christian <<a
href="mailto:Christian.Koenig@amd.com"
moz-do-not-send="true">Christian.Koenig@amd.com</a>>;
Mao, David <<a href="mailto:David.Mao@amd.com"
moz-do-not-send="true">David.Mao@amd.com</a>><br>
<b>Cc:</b> Jin, Jian-Rong <<a
href="mailto:Jian-Rong.Jin@amd.com"
moz-do-not-send="true">Jian-Rong.Jin@amd.com</a>>;
<a href="mailto:amd-gfx@lists.freedesktop.org"
moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a><br>
<b>Subject:</b> Re: deprecated register issues<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span
lang="EN-US">Hi Monk,<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">While
we can avoid such vm flush failure by stitch together of
the sending REQ and reading ACK part, at least for
compute ring this is confirmed.</span><span lang="EN-US"><o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span lang="EN-US">Well there are two
misunderstanding here.
<br>
<br>
First of all this solution doesn't really work, it just
hides the problem because we don't do a world switch in
between those two packets any more. And while we could
change the SDMA, UVD and VCE firmware do to something
similar you can't apply this solution to CPU based
flushes.<br>
<br>
The second issue is that this isn't related to VMHUB
flushing at all, it's just that VMHUB flushing is the
first thing where you notice that something is wrong.<br>
<br>
The real problem is that when you access </span><span
style="font-family:"Calibri",sans-serif"
lang="EN-US">CC_RB_BACKEND_DISABLE and a bunch of other
registers the bus on Vega10 sometimes gets a hickup and
drops other reads and writes.<br>
<br>
So we need to identify those registers and removes all
accesses to them, otherwise working with the hardware will
just be horrible unreliable in general.<br>
<br>
Regards,<br>
Christian.<br>
</span><span lang="EN-US"><br>
Am 08.03.2018 um 04:05 schrieb Liu, Monk:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">Hi
Alex</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">While
we can avoid such vm flush failure by stitch together of
the sending REQ and reading ACK part, at least for compute
ring this is confirmed.</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">And I
believe for SDMA ring (even UVD/VCE ring) it could also be
achieved.</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">But
<a id="OWAAM88494E83DC8949F581E2AEBF1FC603DA"
href="mailto:Christian.Koenig@amd.com"
moz-do-not-send="true">
<span style="font-family:等线;text-decoration:none">@Koenig,
Christian</span></a> insist stitching together the REQ
AND ACK part is not a formal way to fix the issue, instead
just a walkaround and I cannot debate that</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">What
make me worry more is what if there are more registers
like Alex said that behaves like this
CC_RB_BACKEND_DISABLE,
</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">since
we don</span><span style="font-size:10.5pt;font-family:等线">’<span
lang="EN-US">t know their names(too hard to filter them
out!) so we couldn</span>’<span lang="EN-US">t remove
them all from SR list, </span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">So I
still think we need plan B to handle above case, A.K.A
use one package for the REQ and ACK job</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">/Monk</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> Deucher, Alexander
<br>
<b>Sent:</b> 2018</span><span style="font-size:11.0pt">年</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">3</span><span style="font-size:11.0pt">月</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">8</span><span style="font-size:11.0pt">日</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> 10:53<br>
<b>To:</b> Liu, Monk <a
href="mailto:Monk.Liu@amd.com"
moz-do-not-send="true"><Monk.Liu@amd.com></a>;
Koenig, Christian
<a href="mailto:Christian.Koenig@amd.com"
moz-do-not-send="true"><Christian.Koenig@amd.com></a>;
Mao, David
<a href="mailto:David.Mao@amd.com"
moz-do-not-send="true"><David.Mao@amd.com></a><br>
<b>Cc:</b> <a
href="mailto:amd-gfx@lists.freedesktop.org"
moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a>;
Jin, Jian-Rong
<a href="mailto:Jian-Rong.Jin@amd.com"
moz-do-not-send="true"><Jian-Rong.Jin@amd.com></a><br>
<b>Subject:</b> Re: deprecated register issues</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p>
<div id="divtagdefaultwrapper">
<p><span style="font-family:"Calibri",sans-serif"
lang="EN-US">I think there are more than just
CC_RB_BACKEND_DISABLE that could cause this problem.
IIRC, some entire class of gfx registers could cause it,
it just happened that this was one of the only ones we
readback via mmio. Also for the save and restore list,
I think the RLC uses a different interface to read back
the registers so it may not be affected the same way.</span><span
lang="EN-US"><o:p></o:p></span></p>
<p><span style="font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span lang="EN-US"><o:p></o:p></span></p>
<p><span style="font-family:"Calibri",sans-serif"
lang="EN-US">Alex</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div class="MsoNormal" style="text-align:center"
align="center"><span lang="EN-US">
<hr align="center" size="3" width="98%">
</span></div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> Liu, Monk<br>
<b>Sent:</b> Wednesday, March 7, 2018 9:42:41 PM<br>
<b>To:</b> Deucher, Alexander; Koenig, Christian; Mao,
David<br>
<b>Cc:</b> <a
href="mailto:amd-gfx@lists.freedesktop.org"
moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a>;
Jin, Jian-Rong<br>
<b>Subject:</b> RE: deprecated register issues</span><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">Hi
guys
</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">According
to Christian</span><span
style="font-size:10.5pt;font-family:等线">’<span
lang="EN-US">s found, reading this register would
make vm hub failed to finish the vm flush request ,
e.g.: sdma is doing vm flush which first write data
to vm_invalidat_req and read result from
vm_invalidate_ack, but found driver will forever
failed to get the correct value from
vm_invalidate_ack if the meantime BIF is reading
this CC_RB_BACKEND_DISABLE register.</span></span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">Now
SR-IOV world switch also may get such similar trouble,
see below save_restore_list ( during world_switch,
RLCV will save current VF</span><span
style="font-size:10.5pt;font-family:等线">’<span
lang="EN-US">s register according to this list and
restore all those registers when loading back this
VF)</span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">uint32
register_restore[] = {</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) | mmPA_SC_FIFO_SIZE),
/* SC */</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmCC_RB_BACKEND_DISABLE), /* SC SC PER_SE */</span></b><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000000,</span></b><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3400 << 18) |
mmCC_RB_BACKEND_DISABLE), /* SC SC PER_SE */</span></b><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000000,</span></b><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3800 << 18) |
mmCC_RB_BACKEND_DISABLE), /* SC SC PER_SE */</span></b><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000000,</span></b><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3c00 << 18) |
mmCC_RB_BACKEND_DISABLE), /* SC SC PER_SE */</span></b><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><b><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000000,</span></b><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmVGT_VTX_VECT_EJECT_REG),
</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmVGT_DMA_DATA_FIFO_DEPTH), /* IA WD */</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmVGT_DMA_REQ_FIFO_DEPTH), /* WD */</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmVGT_DRAW_INIT_FIFO_DEPTH), /* WD */</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmVGT_CACHE_INVALIDATION), /* IA */</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) | mmVGT_RESET_DEBUG),
/* WD */</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
0x00000001,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">
(uint32)((0x3000 << 18) |
mmVGT_FIFO_DEPTHS),
</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">I
will do some test against this CC_RB_BACKEND_DISABLE
register, see if vm flush failure issue could be
avoided by removing those four register from SR list
</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">Thanks</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US">/Monk</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"><span
style="font-size:10.5pt;font-family:等线" lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="xmsonormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> Deucher, Alexander
<br>
<b>Sent:</b> 2018</span><span
style="font-size:11.0pt">年</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">3</span><span
style="font-size:11.0pt">月</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">7</span><span
style="font-size:11.0pt">日</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> 23:13<br>
<b>To:</b> Koenig, Christian <<a
href="mailto:Christian.Koenig@amd.com"
moz-do-not-send="true">Christian.Koenig@amd.com</a>>;
Mao, David <<a href="mailto:David.Mao@amd.com"
moz-do-not-send="true">David.Mao@amd.com</a>>;
Liu, Monk <<a href="mailto:Monk.Liu@amd.com"
moz-do-not-send="true">Monk.Liu@amd.com</a>><br>
<b>Cc:</b> <a
href="mailto:amd-gfx@lists.freedesktop.org"
moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a>;
Jin, Jian-Rong <<a
href="mailto:Jian-Rong.Jin@amd.com"
moz-do-not-send="true">Jian-Rong.Jin@amd.com</a>><br>
<b>Subject:</b> Re: deprecated register issues</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<p class="xmsonormal"><span lang="EN-US"> <o:p></o:p></span></p>
<div id="x_divtagdefaultwrapper">
<p><span
style="font-family:"Calibri",sans-serif"
lang="EN-US">Right. We ran into issues with reading
back that register at runtime when UMDs queried it
when other stuff was in flight, so we just read it
once at startup and cache the results. Now when UMDs
request it, we return the cached value.</span><span
lang="EN-US"><o:p></o:p></span></p>
<p><span
style="font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span lang="EN-US"><o:p></o:p></span></p>
<p><span
style="font-family:"Calibri",sans-serif"
lang="EN-US">Alex</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div class="MsoNormal" style="text-align:center"
align="center"><span lang="EN-US">
<hr align="center" size="3" width="98%">
</span></div>
<div id="x_divRplyFwdMsg">
<p class="xmsonormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> Koenig, Christian<br>
<b>Sent:</b> Wednesday, March 7, 2018 9:31:13 AM<br>
<b>To:</b> Mao, David; Liu, Monk<br>
<b>Cc:</b> Deucher, Alexander; <a
href="mailto:amd-gfx@lists.freedesktop.org"
moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a>;
Jin, Jian-Rong<br>
<b>Subject:</b> Re: deprecated register issues</span><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="xmsonormal"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">Hi David,<br>
<br>
well I just figured that this is a
misunderstanding.<br>
<br>
Accessing this register and some other deprecated
registers can cause problem when invalidating
VMHUBs.<br>
<br>
This register itself isn't deprecated, the wording
in a patch fixing things is just a bit unclear.<br>
<br>
Question is is that register still accessed
regularly or is it value cached after startup?
<br>
<br>
Regards,<br>
Christian.<br>
<br>
Am 07.03.2018 um 15:25 schrieb Mao, David:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="xmsonormal" style="background:white"><span
lang="EN-US">We requires base driver to provide
the mask of disabled RB.
<o:p></o:p></span></p>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">This is why kernel read the
CC_RB_BACKEND_DISABLE to collect the harvest
configuration.<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">Where did you get to know that the
register is deprecated?<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">I think it should still be there.<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">Best Regards,<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">David<o:p></o:p></span></p>
<div>
<p class="xmsonormal"
style="margin-bottom:12.0pt;background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
<blockquote
style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US">On Mar 7, 2018, at 9:49 PM,
Liu, Monk <<a
href="mailto:Monk.Liu@amd.com"
moz-do-not-send="true">Monk.Liu@amd.com</a>>
wrote:<o:p></o:p></span></p>
</div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:10.5pt;font-family:等线"
lang="EN-US">+ UMD guys</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:10.5pt;font-family:等线"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:10.5pt;font-family:等线"
lang="EN-US">Hi David</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:10.5pt;font-family:等线"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:10.5pt;font-family:等线"
lang="EN-US">Do you know if<span
class="xxapple-converted-space"> </span></span><b><span
style="font-size:10.5pt;font-family:"Courier New",serif"
lang="EN-US">GC_USER_RB_BACKEND_DISABLE
is still exist for gfx9/vega10 ?</span></b><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><b><span
style="font-size:10.5pt;font-family:"Courier
New",serif" lang="EN-US"> </span></b><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><b><span
style="font-size:10.5pt;font-family:"Courier
New",serif" lang="EN-US">We
found<span
class="xxapple-converted-space"> </span></span></b><span
lang="EN-US">CC_RB_BACKEND_DISABLE was
deprecated but looks it is still in
use in kmd, so<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US">I want to check with you
both of above registers<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US">Thanks<span
class="xxapple-converted-space"> </span><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US">/Monk<o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:10.5pt;font-family:等线"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div style="border:none;border-top:solid
#E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<div>
<p class="xmsonormal"
style="background:white"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">From:</span></b><span
class="xxapple-converted-space"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span></span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">amd-gfx [<a
href="mailto:amd-gfx-bounces@lists.freedesktop.org"
moz-do-not-send="true">mailto:amd-gfx-bounces@lists.freedesktop.org</a>]<span
class="xxapple-converted-space"> </span><b>On
Behalf Of<span
class="xxapple-converted-space"> </span></b>Christian
K?nig<br>
<b>Sent:</b><span
class="xxapple-converted-space"> </span>2018</span><span
style="font-size:11.0pt">年</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">3</span><span
style="font-size:11.0pt">月</span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">7</span><span
style="font-size:11.0pt">日</span><span
class="xxapple-converted-space"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span></span><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">20:26<br>
<b>To:</b><span
class="xxapple-converted-space"> </span>Liu,
Monk <<a
href="mailto:Monk.Liu@amd.com"
moz-do-not-send="true">Monk.Liu@amd.com</a>>;
Deucher, Alexander <<a
href="mailto:Alexander.Deucher@amd.com"
moz-do-not-send="true">Alexander.Deucher@amd.com</a>><br>
<b>Cc:</b><span
class="xxapple-converted-space"> </span><a
href="mailto:amd-gfx@lists.freedesktop.org" moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a><br>
<b>Subject:</b><span
class="xxapple-converted-space"> </span>Re:
deprecated register issues</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US">Hi Monk,<br>
<br>
I honestly don't have the slightest
idea why we are still accessing
CC_RB_BACKEND_DISABLE. Maybe it
still contains some useful values?<br>
<br>
Key point was that we needed to stop
accessing it all the time to avoid
triggering problems.<br>
<br>
Regards,<br>
Christian.<br>
<br>
Am 07.03.2018 um 13:11 schrieb Liu,
Monk:<o:p></o:p></span></p>
</div>
</div>
<blockquote
style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">Hi Christian</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">I remember you and
AlexD mentioned that a handful
registers are deprecated for
greenland (gfx9)</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">e.g.
CC_RB_BACKEND_DISABLE</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">do you know why we
still have this routine ?</span><span
lang="EN-US"><o:p></o:p></span></p>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#569CD6",serif"
lang="EN-US">static</span><span
class="xxapple-converted-space"><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US"> </span></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">u32</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#DCDCAA",serif"
lang="EN-US">gfx_v9_0_get_rb_active_bitmap</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">(</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#569CD6",serif"
lang="EN-US">struct</span><span
class="xxapple-converted-space"><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US"> </span></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">amdgpu_device
*adev)</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">{</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> u32 data,
mask;</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> data =<span
class="xxapple-converted-space"> </span></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#DCDCAA",serif"
lang="EN-US">RREG32_SOC15</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">(GC,</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#B5CEA8",serif"
lang="EN-US">0</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US">,
mmCC_RB_BACKEND_DISABLE);</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> data |=<span
class="xxapple-converted-space"> </span></span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#DCDCAA",serif"
lang="EN-US">RREG32_SOC15</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">(GC,</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#B5CEA8",serif"
lang="EN-US">0</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US">,
mmGC_USER_RB_BACKEND_DISABLE);</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> data &=
CC_RB_BACKEND_DISABLE__BACKEND_DISABLE_MASK;</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> data
>>=
GC_USER_RB_BACKEND_DISABLE__BACKEND_DISABLE__SHIFT;</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> mask =<span
class="xxapple-converted-space"> </span></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#DCDCAA",serif"
lang="EN-US">amdgpu_gfx_create_bitmask</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">(adev-></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#9CDCFE",serif"
lang="EN-US">gfx</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US">.</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#9CDCFE",serif"
lang="EN-US">config</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">.</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#9CDCFE",serif"
lang="EN-US">max_backends_per_se</span><span
class="xxapple-converted-space"><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US"> </span></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">/</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">
adev-></span><span
lang="EN-US">gfx</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US">.</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#9CDCFE",serif"
lang="EN-US">config</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">.</span><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#9CDCFE",serif"
lang="EN-US">max_sh_per_se</span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">);</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#C586C0",serif"
lang="EN-US">return</span><span
class="xxapple-converted-space"><span
style="font-size:10.5pt;font-family:"Courier
New
;color:#D4D4D4",serif"
lang="EN-US"> </span></span><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">(~data) &
mask;</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US">}</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="line-height:14.25pt;background:#1E1E1E"><span
style="font-size:10.5pt;font-family:"Courier New
;color:#D4D4D4",serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="xmsonormal"
style="background:white"><span
style="font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">see that it still
read CC_RB_BACKEND_DISABLE</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">thanks</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US">/Monk</span><span
lang="EN-US"><o:p></o:p></span></p>
<p class="xmsonormal"
style="background:white"><span
style="font-size:9.0pt;font-family:"Calibri",sans-serif"
lang="EN-US"> </span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class="xmsonormal"
style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="xmsonormal" style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
</blockquote>
<p class="xmsonormal" style="background:white"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span
lang="EN-US"><br>
<br>
<o:p></o:p></span></p>
<pre><span lang="EN-US">_______________________________________________<o:p></o:p></span></pre>
<pre><span lang="EN-US">amd-gfx mailing list<o:p></o:p></span></pre>
<pre><span lang="EN-US"><a href="mailto:amd-gfx@lists.freedesktop.org" moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a><o:p></o:p></span></pre>
<pre><span lang="EN-US"><a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" moz-do-not-send="true">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><o:p></o:p></span></pre>
</blockquote>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</blockquote>
<br>
</body>
</html>