On Thu, Apr 13, 2023 at 7:32 AM Christian König <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > Ok, then we have a problem. > > Alex what do you think? If you program it to 0, FW skips the GDS backup I think so UMD's can decide whether they want to use it or not, depending on whether they use GDS. Alex > > 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 <ckoenig.leichtzumerken@xxxxxxxxx> 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 <ckoenig.leichtzumerken@xxxxxxxxx> 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 <christian.koenig@xxxxxxx> 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 <alexander.deucher@xxxxxxx> 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 <christian.koenig@xxxxxxx> >>>>> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> >>>>> --- >>>>> 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 >>>>> >>>> >>> >> >