Re: [PATCH 2/3] drm/sched: Adjust outdated docu for run_job()
From: Danilo Krummrich
Date: Mon Jan 13 2025 - 05:20:28 EST
On Thu, Jan 09, 2025 at 02:37:11PM +0100, Philipp Stanner wrote:
> The documentation for drm_sched_backend_ops.run_job() mentions a certain
> function called drm_sched_job_recovery(). This function does not exist.
> What's actually meant is drm_sched_resubmit_jobs(), which is by now also
> deprecated.
>
> Remove the mention of the deprecated function.
>
> Discourage the behavior of drm_sched_backend_ops.run_job() being called
> multiple times for the same job.
>
> Signed-off-by: Philipp Stanner <phasta@xxxxxxxxxx>
> ---
> include/drm/gpu_scheduler.h | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
> index d5cd2a78f27c..c4e65f9f7f22 100644
> --- a/include/drm/gpu_scheduler.h
> +++ b/include/drm/gpu_scheduler.h
> @@ -421,9 +421,12 @@ struct drm_sched_backend_ops {
>
> /**
> * @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.
> + * have been resolved.
> + *
> + * The deprecated drm_sched_resubmit_jobs() (called from
> + * drm_sched_backend_ops.timedout_job()) can invoke this again with the
> + * same parameters. Doing this is strongly discouraged because it
Maybe "invoke this again for the same job"?
> + * violates dma_fence rules.
Does it? AFAIU it puts certain expectations on the driver, before a driver can
call this function, which likely leads to the driver to violate dma_fence rules,
right?
Maybe we should also list the exact rules that are (likely to be) violated to
allow drivers to fix it at their end more easily.
> *
> * @sched_job: the job to run
> *
> --
> 2.47.1
>