<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Ok, then we have a problem.<br>
    <br>
    Alex what do you think?<br>
    <br>
    Christian.<br>
    <br>
    <div class="moz-cite-prefix">Am 13.04.23 um 11:21 schrieb Marek
      Olšák:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAxE2A5mf8J_1JJvgPgx-G07zcc3vcHOD6jWUXL8Mhx3g-Zufw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">
        <div>That's not why it was removed. It was removed because
          userspace doesn't use GDS memory and gds_va is always going to
          be 0.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Firmware shouldn't use it because using it would
          increase preemption latency.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Marek<br>
          <br>
          <div class="gmail_quote" dir="auto">
            <div dir="ltr" class="gmail_attr">On Sun, Apr 9, 2023, 11:21
              Christian König <<a
                href="mailto:ckoenig.leichtzumerken@gmail.com"
                moz-do-not-send="true" class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
              wrote:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div> We removed the GDS information because they were
                unnecessary. The GDS size was already part of the device
                info before we added the shadow info.<br>
                <br>
                But as far as I know the firmware needs valid VAs for
                all three buffers or won't work correctly.<br>
                <br>
                Christian.<br>
                <br>
                <div>Am 06.04.23 um 17:01 schrieb Marek Olšák:<br>
                </div>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div>There is no GDS shadowing info in the device
                      info uapi, so userspace can't create any GDS
                      buffer and thus can't have any GDS va. It's a uapi
                      issue, not what firmware wants to do.<br>
                    </div>
                    <div><br>
                    </div>
                    <div>Marek<br>
                    </div>
                  </div>
                  <br>
                  <div class="gmail_quote">
                    <div dir="ltr" class="gmail_attr">On Thu, Apr 6,
                      2023 at 6:31 AM Christian König <<a
                        href="mailto:ckoenig.leichtzumerken@gmail.com"
                        target="_blank" rel="noreferrer"
                        moz-do-not-send="true"
                        class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
                      wrote:<br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">
                      <div> That's what I thought as well, but
                        Mitch/Hans insisted on that.<br>
                        <br>
                        We should probably double check internally.<br>
                        <br>
                        Christian.<br>
                        <br>
                        <div>Am 06.04.23 um 11:43 schrieb Marek Olšák:<br>
                        </div>
                        <blockquote type="cite">
                          <div dir="ltr">
                            <div>GDS memory isn't used on gfx11. Only
                              GDS OA is used.<br>
                            </div>
                            <div><br>
                            </div>
                            <div>Marek<br>
                            </div>
                          </div>
                          <br>
                          <div class="gmail_quote">
                            <div dir="ltr" class="gmail_attr">On Thu,
                              Apr 6, 2023 at 5:09 AM Christian König
                              <<a
                                href="mailto:christian.koenig@amd.com"
                                target="_blank" rel="noreferrer"
                                moz-do-not-send="true"
                                class="moz-txt-link-freetext">christian.koenig@amd.com</a>>
                              wrote:<br>
                            </div>
                            <blockquote class="gmail_quote"
                              style="margin:0px 0px 0px
                              0.8ex;border-left:1px solid
                              rgb(204,204,204);padding-left:1ex">
                              <div> Why that?<br>
                                <br>
                                This is the save buffer for GDS, not the
                                old style GDS BOs.<br>
                                <br>
                                Christian.<br>
                                <br>
                                <div>Am 06.04.23 um 09:36 schrieb Marek
                                  Olšák:<br>
                                </div>
                                <blockquote type="cite">
                                  <div dir="ltr">
                                    <div>gds_va is unnecessary.</div>
                                    <div><br>
                                    </div>
                                    <div>Marek<br>
                                    </div>
                                  </div>
                                  <br>
                                  <div class="gmail_quote">
                                    <div dir="ltr" class="gmail_attr">On
                                      Thu, Mar 30, 2023 at 3:18 PM Alex
                                      Deucher <<a
                                        href="mailto:alexander.deucher@amd.com"
                                        target="_blank" rel="noreferrer"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">alexander.deucher@amd.com</a>>
                                      wrote:<br>
                                    </div>
                                    <blockquote class="gmail_quote"
                                      style="margin:0px 0px 0px
                                      0.8ex;border-left:1px solid
                                      rgb(204,204,204);padding-left:1ex">For
                                      GFX11, the UMD needs to allocate
                                      some shadow buffers<br>
                                      to be used for preemption.  The
                                      UMD allocates the buffers<br>
                                      and passes the GPU virtual address
                                      to the kernel since the<br>
                                      kernel will program the packet
                                      that specified these<br>
                                      addresses as part of its IB
                                      submission frame.<br>
                                      <br>
                                      v2: UMD passes shadow init to tell
                                      kernel when to initialize<br>
                                          the shadow<br>
                                      <br>
                                      Reviewed-by: Christian König <<a
href="mailto:christian.koenig@amd.com" target="_blank" rel="noreferrer"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">christian.koenig@amd.com</a>><br>
                                      Signed-off-by: Alex Deucher <<a
href="mailto:alexander.deucher@amd.com" target="_blank" rel="noreferrer"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">alexander.deucher@amd.com</a>><br>
                                      ---<br>
                                       include/uapi/drm/amdgpu_drm.h |
                                      10 ++++++++++<br>
                                       1 file changed, 10 insertions(+)<br>
                                      <br>
                                      diff --git
                                      a/include/uapi/drm/amdgpu_drm.h
                                      b/include/uapi/drm/amdgpu_drm.h<br>
                                      index b6eb90df5d05..3d9474af6566
                                      100644<br>
                                      ---
                                      a/include/uapi/drm/amdgpu_drm.h<br>
                                      +++
                                      b/include/uapi/drm/amdgpu_drm.h<br>
                                      @@ -592,6 +592,7 @@ struct
                                      drm_amdgpu_gem_va {<br>
                                       #define
                                      AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES
                                      0x07<br>
                                       #define
                                      AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT 
                                        0x08<br>
                                       #define
                                      AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL 
                                      0x09<br>
                                      +#define
                                      AMDGPU_CHUNK_ID_CP_GFX_SHADOW 
                                       0x0a<br>
                                      <br>
                                       struct drm_amdgpu_cs_chunk {<br>
                                              __u32           chunk_id;<br>
                                      @@ -708,6 +709,15 @@ struct
                                      drm_amdgpu_cs_chunk_data {<br>
                                              };<br>
                                       };<br>
                                      <br>
                                      +#define
                                      AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW 
                                             0x1<br>
                                      +<br>
                                      +struct
                                      drm_amdgpu_cs_chunk_cp_gfx_shadow
                                      {<br>
                                      +       __u64 shadow_va;<br>
                                      +       __u64 csa_va;<br>
                                      +       __u64 gds_va;<br>
                                      +       __u64 flags;<br>
                                      +};<br>
                                      +<br>
                                       /*<br>
                                        *  Query h/w info: Flag that
                                      this is integrated (a.h.a. fusion)
                                      GPU<br>
                                        *<br>
                                      -- <br>
                                      2.39.2<br>
                                      <br>
                                    </blockquote>
                                  </div>
                                </blockquote>
                                <br>
                              </div>
                            </blockquote>
                          </div>
                        </blockquote>
                        <br>
                      </div>
                    </blockquote>
                  </div>
                </blockquote>
                <br>
              </div>
            </blockquote>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>