[PATCH 3/3] drm/amdgpu: Remove the while loop from amdgpu_job_prepare_job

Tvrtko Ursulin tvrtko.ursulin at igalia.com
Mon Oct 7 12:52:41 UTC 2024


On 04/10/2024 15:15, Alex Deucher wrote:
> Applied.  Thanks!

Thanks Alex!

Could you perhaps also merge 
https://lore.kernel.org/amd-gfx/20240813135712.82611-1-tursulin@igalia.com/ 
via your tree? If it still applies that is.

Regards,

Tvrtko

> On Fri, Oct 4, 2024 at 3:28 AM Tvrtko Ursulin <tvrtko.ursulin at igalia.com> wrote:
>>
>>
>> On 24/09/2024 13:06, Christian König wrote:
>>> Am 24.09.24 um 11:51 schrieb Tvrtko Ursulin:
>>>> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>>>
>>>> While loop makes it sound like amdgpu_vmid_grab() potentially needs to be
>>>> called multiple times to produce a fence, while in reality all code paths
>>>> either return an error, assign a valid job->vmid or assign a vmid which
>>>> will be valid once the returned fence signals.
>>>>
>>>> Therefore we can remove the loop to make it clear the call does not need
>>>> to be repeated.
>>>>
>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>>> Cc: Christian König <christian.koenig at amd.com>
>>>
>>> Oh yeah that's a leftover from when we still had the dependency handling
>>> inside all this.
>>>
>>> Reviewed-by: Christian König <christian.koenig at amd.com> for the whole
>>> series.
>>
>> Thanks - CC Alex if you could merge the trivial series please?
>>
>> Regards,
>>
>> Tvrtko
>>
>>>> ---
>>>> I stared for a good while, going back and forth, and couldn't see that
>>>> the
>>>> while loop is needed. But maybe I missed something?
>>>> ---
>>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> index d11cb0ad8c49..85f10b59d09c 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> @@ -356,7 +356,7 @@ amdgpu_job_prepare_job(struct drm_sched_job
>>>> *sched_job,
>>>>        if (job->gang_submit)
>>>>            fence = amdgpu_device_switch_gang(ring->adev,
>>>> job->gang_submit);
>>>> -    while (!fence && job->vm && !job->vmid) {
>>>> +    if (!fence && job->vm && !job->vmid) {
>>>>            r = amdgpu_vmid_grab(job->vm, ring, job, &fence);
>>>>            if (r) {
>>>>                dev_err(ring->adev->dev, "Error getting VM ID (%d)\n", r);
>>>


More information about the amd-gfx mailing list