[PATCH 03/13] drm/amdgpu/UAPI: add new CS chunk for GFX shadow buffers
Alex Deucher
alexdeucher at gmail.com
Thu Apr 13 12:26:39 UTC 2023
On Thu, Apr 13, 2023 at 7:32 AM Christian König
<ckoenig.leichtzumerken at gmail.com> 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 at gmail.com> 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 at gmail.com> 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 at amd.com> 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 at amd.com> 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 at amd.com>
>>>>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>>>>> ---
>>>>> 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
>>>>>
>>>>
>>>
>>
>
More information about the amd-gfx
mailing list