<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>I switched the workqueue we were using for xgmi_reset_work from
      system_highpri_wq to system_unbound_wq - the difference is that
      workers servicing the queue in system_unbound_wq are not bounded
      to specific CPU and so the reset jobs for each XGMI node are
      getting scheduled to different CPU while system_highpri_wq is a
      bounded work queue. I traced it as bellow for 10 consecutive times
      and didn't see errors any more. Also the time diff between BACO
      entries or exits was never more then around 2 uS. <br>
    </p>
    <p>Please give this updated patchset a try</p>
    <p>   kworker/u16:2-57    [004] ...1   243.276312: trace_code: func:
      vega20_baco_set_state, line 91 <----- - Before BEACO enter<br>
                 <...>-60    [007] ...1   243.276312: trace_code:
      func: vega20_baco_set_state, line 91 <----- - Before BEACO
      enter<br>
         kworker/u16:2-57    [004] ...1   243.276384: trace_code: func:
      vega20_baco_set_state, line 105 <----- - After BEACO enter done<br>
                 <...>-60    [007] ...1   243.276392: trace_code:
      func: vega20_baco_set_state, line 105 <----- - After BEACO
      enter done<br>
         kworker/u16:3-60    [007] ...1   243.276397: trace_code: func:
      vega20_baco_set_state, line 108 <----- - Before BEACO exit<br>
         kworker/u16:2-57    [004] ...1   243.276399: trace_code: func:
      vega20_baco_set_state, line 108 <----- - Before BEACO exit<br>
         kworker/u16:3-60    [007] ...1   243.288067: trace_code: func:
      vega20_baco_set_state, line 114 <----- - After BEACO exit done<br>
         kworker/u16:2-57    [004] ...1   243.295624: trace_code: func:
      vega20_baco_set_state, line 114 <----- - After BEACO exit done</p>
    <p>Andrey<br>
    </p>
    <div class="moz-cite-prefix">On 12/9/19 9:45 PM, Ma, Le wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:MN2PR12MB4285B04000E228E467F8004BF65B0@MN2PR12MB4285.namprd12.prod.outlook.com">
      
      <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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
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.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.msipheadera92e061b, li.msipheadera92e061b, div.msipheadera92e061b
        {mso-style-name:msipheadera92e061b;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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]-->
      <p class="msipheadera92e061b" style="margin:0" align="Left"><span style="font-size:10.0pt;font-family:Arial;color:#0078D7">[AMD
          Official Use Only - Internal Distribution Only]</span></p>
      <br>
      <div class="WordSection1">
        <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">I’m fine with your
            solution if synchronization time interval satisfies BACO
            requirements and loop test can pass on XGMI system.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">Regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">Ma Le<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> Grodzovsky, Andrey
                <a class="moz-txt-link-rfc2396E" href="mailto:Andrey.Grodzovsky@amd.com"><Andrey.Grodzovsky@amd.com></a>
                <br>
                <b>Sent:</b> Monday, December 9, 2019 11:52 PM<br>
                <b>To:</b> Ma, Le <a class="moz-txt-link-rfc2396E" href="mailto:Le.Ma@amd.com"><Le.Ma@amd.com></a>;
                <a class="moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a>; Zhou1, Tao
                <a class="moz-txt-link-rfc2396E" href="mailto:Tao.Zhou1@amd.com"><Tao.Zhou1@amd.com></a>; Deucher, Alexander
                <a class="moz-txt-link-rfc2396E" href="mailto:Alexander.Deucher@amd.com"><Alexander.Deucher@amd.com></a>; Li, Dennis
                <a class="moz-txt-link-rfc2396E" href="mailto:Dennis.Li@amd.com"><Dennis.Li@amd.com></a>; Zhang, Hawking
                <a class="moz-txt-link-rfc2396E" href="mailto:Hawking.Zhang@amd.com"><Hawking.Zhang@amd.com></a><br>
                <b>Cc:</b> Chen, Guchun <a class="moz-txt-link-rfc2396E" href="mailto:Guchun.Chen@amd.com"><Guchun.Chen@amd.com></a><br>
                <b>Subject:</b> Re: [PATCH 07/10] drm/amdgpu: add
                concurrent baco reset support for XGMI<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p>Thanks a lot Ma for trying - I think I have to have my own
          system to debug this so I will keep trying enabling XGMI - i
          still think the is the right and the generic solution for
          multiple nodes reset synchronization and in fact the barrier
          should also be used for synchronizing PSP mode 1 XGMI reset
          too.<o:p></o:p></p>
        <p>Andrey<o:p></o:p></p>
        <div>
          <p class="MsoNormal">On 12/9/19 6:34 AM, Ma, Le wrote:<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p class="msipheadera92e061b" style="margin:0in;margin-bottom:.0001pt"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#0078D7">[AMD
              Official Use Only - Internal Distribution Only]</span><o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">Hi Andrey,</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext"> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">I tried your
              patches on my 2P XGMI platform. The baco can work at most
              time, and randomly got following error:</span><o:p></o:p></p>
          <p class="MsoNormal" style="margin-left:.5in"><span style="font-size:12.0pt;color:windowtext">[ 1701.542298]
              amdgpu: [powerplay] Failed to send message 0x25, response
              0x0</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext"> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">This error
              usually means some sync issue exist for xgmi baco case.
              Feel free to debug your patches on my XGMI platform.</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext"> </span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">Regards,</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">Ma Le</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext"> </span><o:p></o:p></p>
          <div>
            <div style="border:none;border-top:solid #E1E1E1
              1.0pt;padding:3.0pt 0in 0in 0in">
              <p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> Grodzovsky, Andrey
                </span><a href="mailto:Andrey.Grodzovsky@amd.com" moz-do-not-send="true"><Andrey.Grodzovsky@amd.com></a><span style="color:windowtext">
                  <br>
                  <b>Sent:</b> Saturday, December 7, 2019 5:51 AM<br>
                  <b>To:</b> Ma, Le </span><a href="mailto:Le.Ma@amd.com" moz-do-not-send="true"><Le.Ma@amd.com></a><span style="color:windowtext">;
                </span><a href="mailto:amd-gfx@lists.freedesktop.org" moz-do-not-send="true">amd-gfx@lists.freedesktop.org</a><span style="color:windowtext">; Zhou1, Tao
                </span><a href="mailto:Tao.Zhou1@amd.com" moz-do-not-send="true"><Tao.Zhou1@amd.com></a><span style="color:windowtext">; Deucher, Alexander
                </span><a href="mailto:Alexander.Deucher@amd.com" moz-do-not-send="true"><Alexander.Deucher@amd.com></a><span style="color:windowtext">; Li, Dennis
                </span><a href="mailto:Dennis.Li@amd.com" moz-do-not-send="true"><Dennis.Li@amd.com></a><span style="color:windowtext">; Zhang, Hawking
                </span><a href="mailto:Hawking.Zhang@amd.com" moz-do-not-send="true"><Hawking.Zhang@amd.com></a><span style="color:windowtext"><br>
                  <b>Cc:</b> Chen, Guchun </span><a href="mailto:Guchun.Chen@amd.com" moz-do-not-send="true"><Guchun.Chen@amd.com></a><span style="color:windowtext"><br>
                  <b>Subject:</b> Re: [PATCH 07/10] drm/amdgpu: add
                  concurrent baco reset support for XGMI</span><o:p></o:p></p>
            </div>
          </div>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p>Hey Ma, attached a solution - it's just compiled as I still
            can't make my XGMI setup work (with bridge connected only
            one device is visible to the system while the other is not).
            Please try it on your system if you have a chance.
            <o:p></o:p></p>
          <p>Andrey<o:p></o:p></p>
          <div>
            <p class="MsoNormal">On 12/4/19 10:14 PM, Ma, Le wrote:<o:p></o:p></p>
          </div>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <p>AFAIK it's enough for even single one node in the hive to
              to fail the enter the BACO state on time to fail the
              entire hive reset procedure, no ?<o:p></o:p></p>
            <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt;color:#203864">[Le]: Yeah, agree
                that. I’ve been thinking that make all nodes entering
                baco simultaneously can reduce the possibility of node
                failure to enter/exit BACO risk. For example, in an XGMI
                hive with 8 nodes, the total time interval of 8 nodes
                enter/exit BACO on 8 CPUs is less than the interval that
                8 nodes enter BACO serially and exit BACO serially
                depending on one CPU with yield capability. This
                interval is usually strict for BACO feature itself.
                Anyway, we need more looping test later on any method we
                will choose.</span><o:p></o:p></p>
            <p>Any way - I see our discussion blocks your entire patch
              set - I think you can go ahead and commit yours way (I
              think you got an RB from Hawking) and I will look then and
              see if I can implement my method and if it works will just
              revert your patch.<o:p></o:p></p>
            <p><span style="font-size:12.0pt;color:#203864">[Le]: OK,
                fine.</span><o:p></o:p></p>
            <p>Andrey<o:p></o:p></p>
          </blockquote>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>