On 25/06/2026 13:40, Boris Brezillon wrote:
> We schedule immediate ticks when we need to process events on CSGs,
> but those immediate ticks don't change the resched_target because we
> want the other groups to stay scheduled for the remaining of the GPU
> timeslot they were given. Make sure these immediate ticks don't get
> overruled by a sched_queue_delayed_work() that would delay the tick
> execution.
> 
> Fixes: 99820b4b7e50 ("drm/panthor: Make sure we resume the tick when new jobs 
> are submitted")
> Reported-by: [email protected]
> Closes: 
> https://sashiko.dev/#/patchset/[email protected]?part=9
> Signed-off-by: Boris Brezillon <[email protected]>
> ---
>  drivers/gpu/drm/panthor/panthor_sched.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_sched.c 
> b/drivers/gpu/drm/panthor/panthor_sched.c
> index 8fd4d97b062e..ab3e13e44a26 100644
> --- a/drivers/gpu/drm/panthor/panthor_sched.c
> +++ b/drivers/gpu/drm/panthor/panthor_sched.c
> @@ -2667,7 +2667,14 @@ static void sched_resume_tick(struct panthor_device 
> *ptdev)
>       else
>               delay_jiffies = 0;
>  
> -     sched_queue_delayed_work(sched, tick, delay_jiffies);
> +     /* We schedule immediate ticks when we need to process events on CSGs,
> +      * but those don't change the resched_target because we want the other
> +      * groups to stay scheduled for the remaining of the GPU timeslot they
> +      * were given. Make sure those immediate ticks don't get overruled by
> +      * a sched_queue_delayed_work() that would delay the tick execution.
> +      */
> +     if (!delayed_work_pending(&sched->tick_work))
> +             sched_queue_delayed_work(sched, tick, delay_jiffies);
>  }
>  
>  static void group_schedule_locked(struct panthor_group *group, u32 
> queue_mask)
> 

Reviewed-by: Karunika Choo <[email protected]>

Kind regards,
Karunika Chooo

Reply via email to