<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Me as well.<br>
    <br>
    Christian.<br>
    <br>
    <div class="moz-cite-prefix">Am 13.04.23 um 20:23 schrieb Marek
      Olšák:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAxE2A5XxySNG2BqcXZKhq=wyC7DnhONLtyFLgRx4x65K3ZbTA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>I'm OK with that.</div>
        <div><br>
        </div>
        <div>Marek<br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Apr 13, 2023 at
          12:56 PM Alex Deucher <<a
            href="mailto:alexdeucher@gmail.com" moz-do-not-send="true"
            class="moz-txt-link-freetext">alexdeucher@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">On
          Thu, Apr 13, 2023 at 11:54 AM Christian König<br>
          <<a href="mailto:ckoenig.leichtzumerken@gmail.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
          wrote:<br>
          ><br>
          > Am 13.04.23 um 14:26 schrieb Alex Deucher:<br>
          > > On Thu, Apr 13, 2023 at 7:32 AM Christian König<br>
          > > <<a
            href="mailto:ckoenig.leichtzumerken@gmail.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
          wrote:<br>
          > >> Ok, then we have a problem.<br>
          > >><br>
          > >> Alex what do you think?<br>
          > > If you program it to 0, FW skips the GDS backup I
          think so UMD's can<br>
          > > decide whether they want to use it or not, depending
          on whether they<br>
          > > use GDS.<br>
          ><br>
          > Yeah, but when Mesa isn't using it we have a hard way
          justifying to<br>
          > upstream that because it isn't tested at all.<br>
          <br>
          Well, the interface would still get used, it's just that mesa
          would<br>
          likely only ever pass 0 for the virtual address.  It's just a<br>
          passthrough to the packet.  If we discover we need it at some
          point,<br>
          it would be nice to not have to add a new interface to add it.<br>
          <br>
          Alex<br>
          <br>
          ><br>
          > Christian.<br>
          ><br>
          > ><br>
          > > Alex<br>
          > ><br>
          > ><br>
          > >> Christian.<br>
          > >><br>
          > >> Am 13.04.23 um 11:21 schrieb Marek Olšák:<br>
          > >><br>
          > >> 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.<br>
          > >><br>
          > >> Firmware shouldn't use it because using it would
          increase preemption latency.<br>
          > >><br>
          > >> Marek<br>
          > >><br>
          > >> On Sun, Apr 9, 2023, 11:21 Christian König <<a
            href="mailto:ckoenig.leichtzumerken@gmail.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
          wrote:<br>
          > >>> 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>
          > >>> Am 06.04.23 um 17:01 schrieb Marek Olšák:<br>
          > >>><br>
          > >>> 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>
          > >>><br>
          > >>> Marek<br>
          > >>><br>
          > >>> On Thu, Apr 6, 2023 at 6:31 AM Christian
          König <<a href="mailto:ckoenig.leichtzumerken@gmail.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
          wrote:<br>
          > >>>> 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>
          > >>>> Am 06.04.23 um 11:43 schrieb Marek
          Olšák:<br>
          > >>>><br>
          > >>>> GDS memory isn't used on gfx11. Only GDS
          OA is used.<br>
          > >>>><br>
          > >>>> Marek<br>
          > >>>><br>
          > >>>> On Thu, Apr 6, 2023 at 5:09 AM Christian
          König <<a href="mailto:christian.koenig@amd.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">christian.koenig@amd.com</a>>
          wrote:<br>
          > >>>>> Why that?<br>
          > >>>>><br>
          > >>>>> This is the save buffer for GDS, not
          the old style GDS BOs.<br>
          > >>>>><br>
          > >>>>> Christian.<br>
          > >>>>><br>
          > >>>>> Am 06.04.23 um 09:36 schrieb Marek
          Olšák:<br>
          > >>>>><br>
          > >>>>> gds_va is unnecessary.<br>
          > >>>>><br>
          > >>>>> Marek<br>
          > >>>>><br>
          > >>>>> On Thu, Mar 30, 2023 at 3:18 PM Alex
          Deucher <<a href="mailto:alexander.deucher@amd.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">alexander.deucher@amd.com</a>>
          wrote:<br>
          > >>>>>> 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"
            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"
            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>
          ><br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>