Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree

Christian König christian.koenig at amd.com
Mon Oct 7 17:53:26 UTC 2024


Hi Greg,

please drop this patch from all backports. It turned out to be broken 
and the old handling has been restored by a revert.

Sorry for the noise. The revert should show up in Linus tree by the end 
of the week.

Regards,
Christian.

Am 07.10.24 um 19:50 schrieb gregkh at linuxfoundation.org:
> This is a note to let you know that I've just added the patch titled
>
>      drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job
>
> to the 6.10-stable tree which can be found at:
>      http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>
> The filename of the patch is:
>       drm-sched-always-wake-up-correct-scheduler-in-drm_sched_entity_push_job.patch
> and it can be found in the queue-6.10 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable at vger.kernel.org> know about it.
>
>
>  From cbc8764e29c2318229261a679b2aafd0f9072885 Mon Sep 17 00:00:00 2001
> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
> Date: Tue, 24 Sep 2024 11:19:08 +0100
> Subject: drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>
> commit cbc8764e29c2318229261a679b2aafd0f9072885 upstream.
>
> Since drm_sched_entity_modify_sched() can modify the entities run queue,
> lets make sure to only dereference the pointer once so both adding and
> waking up are guaranteed to be consistent.
>
> Alternative of moving the spin_unlock to after the wake up would for now
> be more problematic since the same lock is taken inside
> drm_sched_rq_update_fifo().
>
> v2:
>   * Improve commit message. (Philipp)
>   * Cache the scheduler pointer directly. (Christian)
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
> Fixes: b37aced31eb0 ("drm/scheduler: implement a function to modify sched list")
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Luben Tuikov <ltuikov89 at gmail.com>
> Cc: Matthew Brost <matthew.brost at intel.com>
> Cc: David Airlie <airlied at gmail.com>
> Cc: Daniel Vetter <daniel at ffwll.ch>
> Cc: Philipp Stanner <pstanner at redhat.com>
> Cc: dri-devel at lists.freedesktop.org
> Cc: <stable at vger.kernel.org> # v5.7+
> Reviewed-by: Christian König <christian.koenig at amd.com>
> Link: https://patchwork.freedesktop.org/patch/msgid/20240924101914.2713-3-tursulin@igalia.com
> Signed-off-by: Christian König <christian.koenig at amd.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> ---
>   drivers/gpu/drm/scheduler/sched_entity.c |   10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
>
> --- a/drivers/gpu/drm/scheduler/sched_entity.c
> +++ b/drivers/gpu/drm/scheduler/sched_entity.c
> @@ -599,6 +599,9 @@ void drm_sched_entity_push_job(struct dr
>   
>   	/* first job wakes up scheduler */
>   	if (first) {
> +		struct drm_gpu_scheduler *sched;
> +		struct drm_sched_rq *rq;
> +
>   		/* Add the entity to the run queue */
>   		spin_lock(&entity->rq_lock);
>   		if (entity->stopped) {
> @@ -608,13 +611,16 @@ void drm_sched_entity_push_job(struct dr
>   			return;
>   		}
>   
> -		drm_sched_rq_add_entity(entity->rq, entity);
> +		rq = entity->rq;
> +		sched = rq->sched;
> +
> +		drm_sched_rq_add_entity(rq, entity);
>   		spin_unlock(&entity->rq_lock);
>   
>   		if (drm_sched_policy == DRM_SCHED_POLICY_FIFO)
>   			drm_sched_rq_update_fifo(entity, submit_ts);
>   
> -		drm_sched_wakeup(entity->rq->sched);
> +		drm_sched_wakeup(sched);
>   	}
>   }
>   EXPORT_SYMBOL(drm_sched_entity_push_job);
>
>
> Patches currently in stable-queue which might be from tvrtko.ursulin at igalia.com are
>
> queue-6.10/drm-sched-always-increment-correct-scheduler-score.patch
> queue-6.10/drm-v3d-prevent-out-of-bounds-access-in-performance-query-extensions.patch
> queue-6.10/drm-sched-always-wake-up-correct-scheduler-in-drm_sched_entity_push_job.patch
> queue-6.10/drm-sched-add-locking-to-drm_sched_entity_modify_sched.patch



More information about the dri-devel mailing list