Am 01.04.25 um 12:32 schrieb SRINIVASAN SHANMUGAM:
> On 3/31/2025 6:31 PM, Christian König wrote:
>> Otherwise triggering sysfs multiple times without other submissions in
>> between only runs the shader once.
>>
>> Signed-off-by: Christian König <christian.koe...@amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 7 ++++---
>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> index f64675b2ab75..9d81eeef61e8 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> @@ -1439,6 +1439,7 @@ static int amdgpu_gfx_run_cleaner_shader_job(struct 
>> amdgpu_ring *ring)
>>       struct amdgpu_device *adev = ring->adev;
>>       struct drm_gpu_scheduler *sched = &ring->sched;
>>       struct drm_sched_entity entity;
>> +    static atomic_t counter;
>>       struct dma_fence *f;
>>       struct amdgpu_job *job;
>>       struct amdgpu_ib *ib;
>> @@ -1452,9 +1453,9 @@ static int amdgpu_gfx_run_cleaner_shader_job(struct 
>> amdgpu_ring *ring)
>>           goto err;
>>       }
>>   -    r = amdgpu_job_alloc_with_ib(ring->adev, &entity, NULL,
>> -                     64, 0,
>> -                     &job);
>> +    r = amdgpu_job_alloc_with_ib(ring->adev, &entity,
>> +                     (void *)(long)atomic_inc_return(&counter),
>> +                     64, 0, &job);
>
> Hi Christian,
>
> Should we need to  implement guards or checks to ensure that the counter does 
> not excessively increment or reach an undesirable state. or resetting of the 
> counter may be necessary?

Good that you ask, but no we don't need anything like that.

Basically the owner just need to be unique, e.g. just a large random number 
would do it as well. And when the atomic wraps around it just goes back to zero 
again.

But we should probably add a comment to explain that here.

Going to update the patch.

Thanks,
Christian.

>
> Best regards,
> Srini
>
>>       if (r)
>>           goto err;
>>   

Reply via email to