Ok, then we have a problem. Alex what do you think? Christian. Am 13.04.23 um 11:21 schrieb Marek Olšák: > 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. > > Firmware shouldn't use it because using it would increase preemption > latency. > > Marek > > On Sun, Apr 9, 2023, 11:21 Christian König > wrote: > > 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. > > But as far as I know the firmware needs valid VAs for all three > buffers or won't work correctly. > > Christian. > > Am 06.04.23 um 17:01 schrieb Marek Olšák: >> 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. >> >> Marek >> >> On Thu, Apr 6, 2023 at 6:31 AM Christian König >> wrote: >> >> That's what I thought as well, but Mitch/Hans insisted on that. >> >> We should probably double check internally. >> >> Christian. >> >> Am 06.04.23 um 11:43 schrieb Marek Olšák: >>> GDS memory isn't used on gfx11. Only GDS OA is used. >>> >>> Marek >>> >>> On Thu, Apr 6, 2023 at 5:09 AM Christian König >>> wrote: >>> >>> Why that? >>> >>> This is the save buffer for GDS, not the old style GDS BOs. >>> >>> Christian. >>> >>> Am 06.04.23 um 09:36 schrieb Marek Olšák: >>>> gds_va is unnecessary. >>>> >>>> Marek >>>> >>>> On Thu, Mar 30, 2023 at 3:18 PM Alex Deucher >>>> wrote: >>>> >>>> For GFX11, the UMD needs to allocate some shadow >>>> buffers >>>> to be used for preemption.  The UMD allocates the >>>> buffers >>>> and passes the GPU virtual address to the kernel >>>> since the >>>> kernel will program the packet that specified these >>>> addresses as part of its IB submission frame. >>>> >>>> v2: UMD passes shadow init to tell kernel when to >>>> initialize >>>>     the shadow >>>> >>>> Reviewed-by: Christian König >>>> Signed-off-by: Alex Deucher >>>> --- >>>>  include/uapi/drm/amdgpu_drm.h | 10 ++++++++++ >>>>  1 file changed, 10 insertions(+) >>>> >>>> diff --git a/include/uapi/drm/amdgpu_drm.h >>>> b/include/uapi/drm/amdgpu_drm.h >>>> index b6eb90df5d05..3d9474af6566 100644 >>>> --- a/include/uapi/drm/amdgpu_drm.h >>>> +++ b/include/uapi/drm/amdgpu_drm.h >>>> @@ -592,6 +592,7 @@ struct drm_amdgpu_gem_va { >>>>  #define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07 >>>>  #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT   0x08 >>>>  #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL 0x09 >>>> +#define AMDGPU_CHUNK_ID_CP_GFX_SHADOW  0x0a >>>> >>>>  struct drm_amdgpu_cs_chunk { >>>>         __u32           chunk_id; >>>> @@ -708,6 +709,15 @@ struct drm_amdgpu_cs_chunk_data { >>>>         }; >>>>  }; >>>> >>>> +#define >>>> AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW     >>>>    0x1 >>>> + >>>> +struct drm_amdgpu_cs_chunk_cp_gfx_shadow { >>>> +       __u64 shadow_va; >>>> +       __u64 csa_va; >>>> +       __u64 gds_va; >>>> +       __u64 flags; >>>> +}; >>>> + >>>>  /* >>>>   *  Query h/w info: Flag that this is integrated >>>> (a.h.a. fusion) GPU >>>>   * >>>> -- >>>> 2.39.2 >>>> >>> >> >