On Tue, Apr 8, 2025 at 11:30 AM Christian König <ckoenig.leichtzumer...@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.koe...@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 >