Good catch, both patches are: Reviewed-by: Iago Toral Quiroga <[email protected]>
El dom, 01-11-2026 a las 09:53 -0300, Maíra Canal escribió: > From: Jose Maria Casanova Crespo <[email protected]> > > v3d_csd_job_timedout() decides whether a compute job made progress by > comparing CSD_CURRENT_CFG4, the number of batches the dispatcher > still > has to start, against the value saved at the previous timeout. That > saved value is never initialized, so it is zero on the first timeout. > > On V3D 7.1.6 and later, CFG4 counts down to zero once the dispatcher > has > started the last batch, but the dispatch keeps running until the > batches > in flight complete. If the first timeout fires in that window, the > handler sees no change and resets the GPU while the job is about to > complete. For example, this happens with long dispatches that only > keep a > single supergroup in flight. > > Initialize timedout_batches to the value programmed in CFG4 when the > job > is started. The register does not return to it once a batch has > started: > it counts down to zero on V3D 7.1.6 and later (CFG4 holds the number > of > batches), and to 0xffffffff on V3D 4.2 (CFG4 holds the number of > batches > minus one). > > Cc: [email protected] > Fixes: d223f98f0209 ("drm/v3d: Add support for compute shader > dispatch.") > Signed-off-by: Jose Maria Casanova Crespo <[email protected]> > Signed-off-by: Maíra Canal <[email protected]> > --- > drivers/gpu/drm/v3d/v3d_sched.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/v3d/v3d_sched.c > b/drivers/gpu/drm/v3d/v3d_sched.c > index e6283a75bcdf..002116efc874 100644 > --- a/drivers/gpu/drm/v3d/v3d_sched.c > +++ b/drivers/gpu/drm/v3d/v3d_sched.c > @@ -360,6 +360,8 @@ v3d_csd_job_run(struct drm_sched_job *sched_job) > dma_fence_put(job->base.irq_fence); > job->base.irq_fence = dma_fence_get(fence); > > + job->timedout_batches = job->args.cfg[4]; > + > trace_v3d_submit_csd(dev, to_v3d_fence(fence)->seqno); > > v3d_job_start_stats(&job->base);
