[PATCH 2/2] drm/scheduler: Remove obsolete spinlock.

Grodzovsky, Andrey Andrey.Grodzovsky at amd.com
Wed May 16 03:33:24 UTC 2018


Yeah, that what I am not sure about... It's lockless in a sense of single producer single consumer but not for multiple concurrent producers... So now I think this spinlock should stay there... It just looked useless to me at first sight...

Andrey

________________________________________
From: Zhou, David(ChunMing)
Sent: 15 May 2018 23:04:44
To: Grodzovsky, Andrey; amd-gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org
Cc: Koenig, Christian
Subject: Re: [PATCH 2/2] drm/scheduler: Remove obsolete spinlock.



On 2018年05月16日 03:31, Andrey Grodzovsky wrote:
> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
> ---
>   drivers/gpu/drm/scheduler/gpu_scheduler.c | 4 ----
>   include/drm/gpu_scheduler.h               | 1 -
>   2 files changed, 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/scheduler/gpu_scheduler.c b/drivers/gpu/drm/scheduler/gpu_scheduler.c
> index 1f1dd70..2569a63 100644
> --- a/drivers/gpu/drm/scheduler/gpu_scheduler.c
> +++ b/drivers/gpu/drm/scheduler/gpu_scheduler.c
> @@ -140,7 +140,6 @@ int drm_sched_entity_init(struct drm_gpu_scheduler *sched,
>       entity->last_scheduled = NULL;
>
>       spin_lock_init(&entity->rq_lock);
> -     spin_lock_init(&entity->queue_lock);
>       spsc_queue_init(&entity->job_queue);
>
>       atomic_set(&entity->fence_seq, 0);
> @@ -424,11 +423,8 @@ void drm_sched_entity_push_job(struct drm_sched_job *sched_job,
>
>       trace_drm_sched_job(sched_job, entity);
>
> -     spin_lock(&entity->queue_lock);
>       first = spsc_queue_push(&entity->job_queue, &sched_job->queue_node);
>
> -     spin_unlock(&entity->queue_lock);
Is your spsc safely to be added simultaneously?

Regards,
David Zhou
> -
>       /* first job wakes up scheduler */
>       if (first) {
>               /* Add the entity to the run queue */
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
> index 350a62c..683eb65 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -56,7 +56,6 @@ struct drm_sched_entity {
>       spinlock_t                      rq_lock;
>       struct drm_gpu_scheduler        *sched;
>
> -     spinlock_t                      queue_lock;
>       struct spsc_queue               job_queue;
>
>       atomic_t                        fence_seq;



More information about the amd-gfx mailing list