Re: [PATCH v5 3/6] drm/scheduler: rework job destruction

2019-05-29 Thread Daniel Vetter
On Thu, Apr 18, 2019 at 5:00 PM Andrey Grodzovsky wrote: > > From: Christian König > > We now destroy finished jobs from the worker thread to make sure that > we never destroy a job currently in timeout processing. > By this we avoid holding lock around ring mirror list in drm_sched_stop > which

Re: [PATCH v5 3/6] drm/scheduler: rework job destruction

2019-04-23 Thread Grodzovsky, Andrey
. Andrey Original Message Subject: Re: [PATCH v5 3/6] drm/scheduler: rework job destruction From: "Grodzovsky, Andrey" To: "Zhou, David(ChunMing)" ,dri-devel@lists.freedesktop.org,amd-...@lists.freedesktop.org,e...@anholt.net,etna...@lists.freedesktop.org,cko

Re:[PATCH v5 3/6] drm/scheduler: rework job destruction

2019-04-23 Thread Zhou, David(ChunMing)
This patch is to fix deadlock between fence->lock and sched->job_list_lock, right? So I suggest to just move list_del_init(_job->node) from drm_sched_process_job to work thread. That will avoid deadlock described in the link. Original Message Subject: Re: [PATCH v5

Re: [PATCH v5 3/6] drm/scheduler: rework job destruction

2019-04-23 Thread Grodzovsky, Andrey
On 4/22/19 8:48 AM, Chunming Zhou wrote: > Hi Andrey, > > static void drm_sched_process_job(struct dma_fence *f, struct > dma_fence_cb *cb) > { > ... >     spin_lock_irqsave(>job_list_lock, flags); >     /* remove job from ring_mirror_list */ >     list_del_init(_job->node); >

Re: [PATCH v5 3/6] drm/scheduler: rework job destruction

2019-04-22 Thread Chunming Zhou
Hi Andrey, static void drm_sched_process_job(struct dma_fence *f, struct dma_fence_cb *cb) { ...     spin_lock_irqsave(>job_list_lock, flags);     /* remove job from ring_mirror_list */     list_del_init(_job->node);     spin_unlock_irqrestore(>job_list_lock, flags); [David]

[PATCH v5 3/6] drm/scheduler: rework job destruction

2019-04-18 Thread Andrey Grodzovsky
From: Christian König We now destroy finished jobs from the worker thread to make sure that we never destroy a job currently in timeout processing. By this we avoid holding lock around ring mirror list in drm_sched_stop which should solve a deadlock reported by a user. v2: Remove unused