<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Great! I will update the patches to also use the barrier in PSP
      MODE 1 reset case and resend the patches for formal review.</p>
    <p>Andrey<br>
    </p>
    <div class="moz-cite-prefix">On 12/11/19 7:18 AM, Ma, Le wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:MN2PR12MB42855499B960506C3BA62198F65A0@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;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle21
        {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]-->
      <div class="WordSection1">
        <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"><span style="color:windowtext"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:12.0pt;color:windowtext">I tried your new
            patches to run BACO for about 10 loops and the result looks
            positive, without observing enter/exit baco message failure
            again.<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">The time interval
            between BACO entries or exits in my environment was almost
            less than 10 us: max 36us, min 2us. I think it’s safe enough
            according to the sample data we collected in both sides.<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">And it looks not
            necessary to continue using system_highpri_wq any more
            because we require all the nodes enter or exit at the same
            time, while do not mind how long the time interval is b/t
            enter and exit. The </span>system_unbound_wq can satisfy
          our requirement here since it wakes different CPUs up to work
          at the same time.<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"><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> Wednesday, December 11, 2019 3:56 AM<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>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.
          <o:p></o:p></p>
        <p>Please give this updated patchset a try<o:p></o:p></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<o:p></o:p></p>
        <p>Andrey<o:p></o:p></p>
        <div>
          <p class="MsoNormal">On 12/9/19 9:45 PM, 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">I’m fine with
              your solution if synchronization time interval satisfies
              BACO requirements and loop test can pass on XGMI system.</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
                  <a href="mailto:Andrey.Grodzovsky@amd.com" moz-do-not-send="true"><Andrey.Grodzovsky@amd.com></a>
                  <br>
                  <b>Sent:</b> Monday, December 9, 2019 11:52 PM<br>
                  <b>To:</b> Ma, Le <a href="mailto:Le.Ma@amd.com" moz-do-not-send="true"><Le.Ma@amd.com></a>; <a href="mailto:amd-gfx@lists.freedesktop.org" moz-do-not-send="true">
                    amd-gfx@lists.freedesktop.org</a>; Zhou1, Tao <a href="mailto:Tao.Zhou1@amd.com" moz-do-not-send="true">
                    <Tao.Zhou1@amd.com></a>; Deucher, Alexander <a href="mailto:Alexander.Deucher@amd.com" moz-do-not-send="true">
                    <Alexander.Deucher@amd.com></a>; Li, Dennis <a href="mailto:Dennis.Li@amd.com" moz-do-not-send="true"><Dennis.Li@amd.com></a>;
                  Zhang, Hawking
                  <a href="mailto:Hawking.Zhang@amd.com" moz-do-not-send="true"><Hawking.Zhang@amd.com></a><br>
                  <b>Cc:</b> Chen, Guchun <a href="mailto:Guchun.Chen@amd.com" moz-do-not-send="true"><Guchun.Chen@amd.com></a><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>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>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>