[PATCH] drm/amd: fix scheduler fence teardown order

Grazvydas Ignotas notasas at gmail.com
Fri Oct 28 15:52:20 UTC 2016


On Fri, Oct 28, 2016 at 6:08 PM, Christian König
<deathsimple at vodafone.de> wrote:
> From: Christian König <christian.koenig at amd.com>
>
> Some fences might be alive even after we have stopped the scheduler leading
> to warnings about leaked objects from the SLUB allocator.
>
> Fix this by allocating/freeing the SLUB allocator from the module
> init/finfi functions just like we do it for hw fences.
>
> Reported-by: Grazvydas Ignotas <notasas at gmail.com>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---

...

> diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
> index 7cbbbfb..28a0d8f 100644
> --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
> +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
> @@ -145,6 +145,9 @@ void amd_sched_entity_fini(struct amd_gpu_scheduler *sched,
>                            struct amd_sched_entity *entity);
>  void amd_sched_entity_push_job(struct amd_sched_job *sched_job);
>
> +int amd_sched_fence_slab_init(void);
> +void amd_sched_fence_slab_fini(void);
> +
>  struct amd_sched_fence *amd_sched_fence_create(
>         struct amd_sched_entity *s_entity, void *owner);
>  void amd_sched_fence_scheduled(struct amd_sched_fence *fence);
> diff --git a/drivers/gpu/drm/amd/scheduler/sched_fence.c b/drivers/gpu/drm/amd/scheduler/sched_fence.c
> index 3653b5a..8c7b5ee 100644
> --- a/drivers/gpu/drm/amd/scheduler/sched_fence.c
> +++ b/drivers/gpu/drm/amd/scheduler/sched_fence.c
> @@ -27,6 +27,25 @@
>  #include <drm/drmP.h>
>  #include "gpu_scheduler.h"
>
> +struct kmem_cache *sched_fence_slab;

Can become static now I guess?


Gražvydas


More information about the amd-gfx mailing list