[PATCH 1/2] drm/amdgpu: use a dummy owner for sysfs triggered cleaner shaders v3

Alex Deucher alexdeucher at gmail.com
Tue Apr 8 20:50:29 UTC 2025


On Tue, Apr 8, 2025 at 11:30 AM Christian König
<ckoenig.leichtzumerken at gmail.com> wrote:
>
> Otherwise triggering sysfs multiple times without other submissions in
> between only runs the shader once.
>
> v2: add some comment
> v3: re-add missing cast
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 14 +++++++++++---
>  1 file changed, 11 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..76237961a08f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> @@ -1439,9 +1439,11 @@ 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;
> +       void * owner;
>         int i, r;
>
>         /* Initialize the scheduler entity */
> @@ -1452,9 +1454,15 @@ 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);
> +       /*
> +        * Use some unique dummy value as the owner to make sure we execute
> +        * the cleaner shader on each submission. The value just need to change
> +        * for each submission and is otherwise meaningless.
> +        */
> +       owner = (void *)(unsigned long)atomic_inc_return(&counter),

missing semicolon at the end.

Alex

> +
> +       r = amdgpu_job_alloc_with_ib(ring->adev, &entity, owner,
> +                                    64, 0, &job);
>         if (r)
>                 goto err;
>
> --
> 2.34.1
>


More information about the amd-gfx mailing list