On Wed, 2025-03-05 at 20:45 +0700, Bagas Sanjaya wrote: > On Wed, Mar 05, 2025 at 02:05:50PM +0100, Philipp Stanner wrote: > > /** > > - * @run_job: Called to execute the job once all of the > > dependencies > > - * have been resolved. This may be called multiple times, > > if > > - * timedout_job() has happened and > > drm_sched_job_recovery() > > - * decides to try it again. > > + * @run_job: Called to execute the job once all of the > > dependencies > > + * have been resolved. > > + * > > + * @sched_job: the job to run > > + * > > + * The deprecated drm_sched_resubmit_jobs() (called by > > &struct > > + * drm_sched_backend_ops.timedout_job) can invoke this > > again with the > > + * same parameters. Using this is discouraged because it > > violates > > + * dma_fence rules, notably dma_fence_init() has to be > > called on > > + * already initialized fences for a second time. Moreover, > > this is > > + * dangerous because attempts to allocate memory might > > deadlock with > > + * memory management code waiting for the reset to > > complete. > > + * > > + * TODO: Document what drivers should do / use instead. > > No replacement? Or bespoke/roll-your-own functionality as a must? > > Confused... We will document this in a follow-up. I'm trying for 2 months now [1] just to fix up some broken, outdated documentation – and that in a component that *I* am maintaining. It's very difficult to reach the relevant stakeholders, and I really want to unblock this series. Feel free to provide a proposal for the TODO based on this series or jump into the discussion here [2]. Otherwise I will propose a fix for the TODO some time the next weeks. P. [1] https://lore.kernel.org/dri-devel/20250109133710.39404-2-phasta@xxxxxxxxxx/ [2] https://lore.kernel.org/dri-devel/688b5665-496d-470d-9835-0c6eadfa5569@xxxxxxxxx/