Re: [PATCH 6.12 058/150] drm/xe: cancel pending job timer before freeing scheduler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 05, 2025 at 06:48:07PM +0100, Greg Kroah-Hartman wrote:
> 6.12-stable review patch.  If anyone has any objections, please let me know.
> 

We just got CI report on this patch, can you please hold off on backporting this.

Thanks!

Matt

> ------------------
> 
> From: Tejas Upadhyay <tejas.upadhyay@xxxxxxxxx>
> 
> [ Upstream commit 12c2f962fe71f390951d9242725bc7e608f55927 ]
> 
> The async call to __guc_exec_queue_fini_async frees the scheduler
> while a submission may time out and restart. To prevent this race
> condition, the pending job timer should be canceled before freeing
> the scheduler.
> 
> V3(MattB):
>  - Adjust position of cancel pending job
>  - Remove gitlab issue# from commit message
> V2(MattB):
>  - Cancel pending jobs before scheduler finish
> 
> Fixes: a20c75dba192 ("drm/xe: Call __guc_exec_queue_fini_async direct for KERNEL exec_queues")
> Reviewed-by: Matthew Brost <matthew.brost@xxxxxxxxx>
> Link: https://patchwork.freedesktop.org/patch/msgid/20250225045754.600905-1-tejas.upadhyay@xxxxxxxxx
> Signed-off-by: Tejas Upadhyay <tejas.upadhyay@xxxxxxxxx>
> (cherry picked from commit 18fbd567e75f9b97b699b2ab4f1fa76b7cf268f6)
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
>  drivers/gpu/drm/xe/xe_guc_submit.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> index fed23304e4da5..3fd2b28b91ab9 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -1215,6 +1215,8 @@ static void __guc_exec_queue_fini_async(struct work_struct *w)
>  
>  	if (xe_exec_queue_is_lr(q))
>  		cancel_work_sync(&ge->lr_tdr);
> +	/* Confirm no work left behind accessing device structures */
> +	cancel_delayed_work_sync(&ge->sched.base.work_tdr);
>  	release_guc_id(guc, q);
>  	xe_sched_entity_fini(&ge->entity);
>  	xe_sched_fini(&ge->sched);
> -- 
> 2.39.5
> 
> 
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux