[PATCH] drm/amdgpu: Update ring scheduler info as needed

James Zhu jamesz at amd.com
Tue Jul 18 16:09:30 UTC 2023


On 2023-07-18 11:54, Lazar, Lijo wrote:
>
>
> On 7/18/2023 8:39 PM, James Zhu wrote:
>>
>> On 2023-07-18 10:19, Lazar, Lijo wrote:
>>>
>>>
>>> On 7/18/2023 7:30 PM, James Zhu wrote:
>>>>
>>>> On 2023-07-18 08:21, Lijo Lazar wrote:
>>>>> Not all rings have scheduler associated. Only update scheduler 
>>>>> data for
>>>>> rings with scheduler. It could result in out of bound access as total
>>>>> rings are more than those associated with particular IPs.
>>>>>
>>>>> Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
>>>>> ---
>>>>>   drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c | 2 +-
>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c 
>>>>> b/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c
>>>>> index 72b629a78c62..d0fc62784e82 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c
>>>>> @@ -134,7 +134,7 @@ static int aqua_vanjaram_xcp_sched_list_update(
>>>>>       for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
>>>>>           ring = adev->rings[i];
>>>>> -        if (!ring || !ring->sched.ready)
>>>>> +        if (!ring || !ring->sched.ready || ring->no_scheduler)
>>>> [JZ] any case for ring->no_scheduler = true, but ring->sched.ready 
>>>> = true?
>>>
>>> amdgpu_gfx_kiq_init_ring sets no_scheduler flag true for kiq rings. 
>>> amdgpu_device_init_schedulers inits schedulers only for rings which 
>>> doesn't have no_scheduler. However in gfx_v9_4_3_xcc_kiq_resume, the 
>>> ring is marked with ring->sched.ready = true;
>>>
>>> I'm not sure why it's done this way, but this is the case even for 
>>> gfxv9.
>> [JZ] I think the sched.ready confuses people. here just means ring is 
>> ready be used.
>
> Thanks for the clarification. One question is then do we need to check 
> ring ready status for assigning xcp ids or just check if the ring is 
> associated with a scheduler?
>
> Keep only this - if (!ring || ring->no_scheduler) to assign xcp ids 
> and leave the ring ready status to the logic which really accepts jobs 
> on the ring?
[JZ] I think keeping ring->sched.ready will reduce schedule list which 
will save a little scheduling time.
>
> Thanks,
> Lijo
>
>>> This patch is Reviewed-by: James Zhu <James.Zhu at amd.com>
>>
>>> Thanks,
>>> Lijo
>>>
>>>>>               continue;
>>>>>           aqua_vanjaram_xcp_gpu_sched_update(adev, ring, 
>>>>> ring->xcp_id);


More information about the amd-gfx mailing list