All of lore.kernel.org
 help / color / mirror / Atom feed
* Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree
@ 2024-10-07 17:50 gregkh
  2024-10-07 17:53 ` Christian König
  0 siblings, 1 reply; 6+ messages in thread
From: gregkh @ 2024-10-07 17:50 UTC (permalink / raw)
  To: airlied, alexander.deucher, christian.koenig, daniel, dri-devel,
	gregkh, ltuikov89, matthew.brost, pstanner, tvrtko.ursulin
  Cc: stable-commits


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@vger.kernel.org> know about it.


From cbc8764e29c2318229261a679b2aafd0f9072885 Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@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@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@igalia.com>
Fixes: b37aced31eb0 ("drm/scheduler: implement a function to modify sched list")
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Luben Tuikov <ltuikov89@gmail.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: David Airlie <airlied@gmail.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Philipp Stanner <pstanner@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v5.7+
Reviewed-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240924101914.2713-3-tursulin@igalia.com
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@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@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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree
  2024-10-07 17:50 Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree gregkh
@ 2024-10-07 17:53 ` Christian König
  2024-10-07 17:54   ` Christian König
  2024-10-07 17:59   ` Greg KH
  0 siblings, 2 replies; 6+ messages in thread
From: Christian König @ 2024-10-07 17:53 UTC (permalink / raw)
  To: gregkh, airlied, alexander.deucher, daniel, dri-devel, ltuikov89,
	matthew.brost, pstanner, tvrtko.ursulin
  Cc: stable-commits

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@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@vger.kernel.org> know about it.
>
>
>  From cbc8764e29c2318229261a679b2aafd0f9072885 Mon Sep 17 00:00:00 2001
> From: Tvrtko Ursulin <tvrtko.ursulin@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@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@igalia.com>
> Fixes: b37aced31eb0 ("drm/scheduler: implement a function to modify sched list")
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Luben Tuikov <ltuikov89@gmail.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: David Airlie <airlied@gmail.com>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Philipp Stanner <pstanner@redhat.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: <stable@vger.kernel.org> # v5.7+
> Reviewed-by: Christian König <christian.koenig@amd.com>
> Link: https://patchwork.freedesktop.org/patch/msgid/20240924101914.2713-3-tursulin@igalia.com
> Signed-off-by: Christian König <christian.koenig@amd.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@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@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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree
  2024-10-07 17:53 ` Christian König
@ 2024-10-07 17:54   ` Christian König
  2024-10-07 17:59   ` Greg KH
  1 sibling, 0 replies; 6+ messages in thread
From: Christian König @ 2024-10-07 17:54 UTC (permalink / raw)
  To: gregkh, airlied, alexander.deucher, daniel, dri-devel, ltuikov89,
	matthew.brost, pstanner, tvrtko.ursulin
  Cc: stable-commits

Or wait a second with that.

Tvrtko which one was the patch we had to revert?

Regards,
Christian.

Am 07.10.24 um 19:53 schrieb Christian König:
> 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@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@vger.kernel.org> know about it.
>>
>>
>>  From cbc8764e29c2318229261a679b2aafd0f9072885 Mon Sep 17 00:00:00 2001
>> From: Tvrtko Ursulin <tvrtko.ursulin@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@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@igalia.com>
>> Fixes: b37aced31eb0 ("drm/scheduler: implement a function to modify 
>> sched list")
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: Alex Deucher <alexander.deucher@amd.com>
>> Cc: Luben Tuikov <ltuikov89@gmail.com>
>> Cc: Matthew Brost <matthew.brost@intel.com>
>> Cc: David Airlie <airlied@gmail.com>
>> Cc: Daniel Vetter <daniel@ffwll.ch>
>> Cc: Philipp Stanner <pstanner@redhat.com>
>> Cc: dri-devel@lists.freedesktop.org
>> Cc: <stable@vger.kernel.org> # v5.7+
>> Reviewed-by: Christian König <christian.koenig@amd.com>
>> Link: 
>> https://patchwork.freedesktop.org/patch/msgid/20240924101914.2713-3-tursulin@igalia.com
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> Signed-off-by: Greg Kroah-Hartman <gregkh@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@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
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree
  2024-10-07 17:53 ` Christian König
  2024-10-07 17:54   ` Christian König
@ 2024-10-07 17:59   ` Greg KH
  2024-10-07 18:23     ` Christian König
  1 sibling, 1 reply; 6+ messages in thread
From: Greg KH @ 2024-10-07 17:59 UTC (permalink / raw)
  To: Christian König
  Cc: airlied, alexander.deucher, daniel, dri-devel, ltuikov89,
	matthew.brost, pstanner, tvrtko.ursulin, stable-commits

On Mon, Oct 07, 2024 at 07:53:26PM +0200, Christian König wrote:
> 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.

What is the revert's git id?  I'd rather take that so we don't have any
"why wasn't this patch applied" stuff later on.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree
  2024-10-07 17:59   ` Greg KH
@ 2024-10-07 18:23     ` Christian König
  2024-10-08  9:59       ` Greg KH
  0 siblings, 1 reply; 6+ messages in thread
From: Christian König @ 2024-10-07 18:23 UTC (permalink / raw)
  To: Greg KH
  Cc: airlied, alexander.deucher, daniel, dri-devel, ltuikov89,
	matthew.brost, pstanner, tvrtko.ursulin, stable-commits

Am 07.10.24 um 19:59 schrieb Greg KH:
> On Mon, Oct 07, 2024 at 07:53:26PM +0200, Christian König wrote:
>> 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.
> What is the revert's git id?  I'd rather take that so we don't have any
> "why wasn't this patch applied" stuff later on.

Good point. I was also not 100% sure which ones of Tvrtko's patches we 
had to revert.

Here is the git Id from the drm-misc-fixes branch:

commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8
Author: Christian König <christian.koenig@amd.com>
Date:   Mon Sep 30 15:07:49 2024 +0200

     drm/sched: revert "Always increment correct scheduler score"

     This reverts commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5.

     It turned out that the original code was correct since the rq can only
     change when there is no armed job for an entity.

     This change here broke the logic since we only incremented the counter
     for the first job, so revert it.

     Signed-off-by: Christian König <christian.koenig@amd.com>
     Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
     Link: 
https://patchwork.freedesktop.org/patch/msgid/20240930131451.536150-1-christian.koenig@amd.com

Sorry for the noise, we should have catched that during the review and 
put the stable tag on the revert as well.

Regards,
Christian.

>
> thanks,
>
> greg k-h


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree
  2024-10-07 18:23     ` Christian König
@ 2024-10-08  9:59       ` Greg KH
  0 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2024-10-08  9:59 UTC (permalink / raw)
  To: Christian König
  Cc: airlied, alexander.deucher, daniel, dri-devel, ltuikov89,
	matthew.brost, pstanner, tvrtko.ursulin, stable-commits

On Mon, Oct 07, 2024 at 08:23:54PM +0200, Christian König wrote:
> Am 07.10.24 um 19:59 schrieb Greg KH:
> > On Mon, Oct 07, 2024 at 07:53:26PM +0200, Christian König wrote:
> > > 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.
> > What is the revert's git id?  I'd rather take that so we don't have any
> > "why wasn't this patch applied" stuff later on.
> 
> Good point. I was also not 100% sure which ones of Tvrtko's patches we had
> to revert.
> 
> Here is the git Id from the drm-misc-fixes branch:
> 
> commit abf201f6ce14c4ceeccde5471bdf59614b83a3d8
> Author: Christian König <christian.koenig@amd.com>
> Date:   Mon Sep 30 15:07:49 2024 +0200
> 
>     drm/sched: revert "Always increment correct scheduler score"
> 
>     This reverts commit 087913e0ba2b3b9d7ccbafb2acf5dab9e35ae1d5.
> 
>     It turned out that the original code was correct since the rq can only
>     change when there is no armed job for an entity.
> 
>     This change here broke the logic since we only incremented the counter
>     for the first job, so revert it.
> 
>     Signed-off-by: Christian König <christian.koenig@amd.com>
>     Acked-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>     Link: https://patchwork.freedesktop.org/patch/msgid/20240930131451.536150-1-christian.koenig@amd.com
> 
> Sorry for the noise, we should have catched that during the review and put
> the stable tag on the revert as well.

Thanks for the info, I've picked this revert up now as well.

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-10-08  9:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-07 17:50 Patch "drm/sched: Always wake up correct scheduler in drm_sched_entity_push_job" has been added to the 6.10-stable tree gregkh
2024-10-07 17:53 ` Christian König
2024-10-07 17:54   ` Christian König
2024-10-07 17:59   ` Greg KH
2024-10-07 18:23     ` Christian König
2024-10-08  9:59       ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.