drm_sched_j...alse_timeout(9)
π drm_sched_job_reinsert_on_false_timeout β Kernel API Manual, bestie β¨
okay so picture this: it's a kernel API manual page, the vibe is immaculate, and the function is drm_sched_job_reinsert_on_false_timeout. yes that's a long name. yes she ate. let's get into it π«Ά
πΈ NAME πΈ
drm_sched_job_reinsert_on_false_timeout β literally just: reinsert the job on a false timeout. that's the whole gig, no cap π
β¨ SYNOPSIS β¨
void drm_sched_job_reinsert_on_false_timeout (struct drm_gpu_scheduler
*sched , struct drm_sched_job *job );
like, it returns void, it takes two things, and it does exactly what it says on the tin π₯
π ARGUMENTS π
schedβ the scheduler instance. the main character of this whole operation, honestly πjobβ the job to be reinserted on the pending list. yes bestie, we're putting her back π¦
π DESCRIPTION π
so here's the situation. sometimes you get what we call a "false timeout" β a timeout occurs, but the GPU isn't hung and is, in fact, making progress. like, she's fine! she's just taking a minute! π
when that happens, the scheduler must reinsert the job back into sched->pending_list. and why does this matter, you ask? because otherwise the job and its resources won't be freed through the struct drm_sched_backend_ops.free_job callback. and that's a leak. we don't do leaks. π«
π real talk: this function must be used in "false timeout" cases only. only. exclusively. don't be out here using it for actual timeouts, i'm begging π
π¦ SEE ALSO π¦
the whole friend group, in order, no one left out fr fr π
- Kernel file
./drivers/gpu/drm/scheduler/sched_main.c Overview(9)Flow Control(9)sched_policy (int)(9)drm_sched_can_queue(9)drm_sched_run_job_queue(9)drm_sched_run_free_queue(9)drm_sched_job_done(9)drm_sched_job_done_cb(9)drm_sched_start_timeout(9)drm_sched_tdr_queue_imm(9)drm_sched_fault(9)drm_sched_suspend_timeout(9)drm_sched_resume_timeout(9)drm_sched_stop(9)drm_sched_start(9)drm_sched_resubmit_jobs(9)drm_sched_job_init(9)drm_sched_job_arm(9)drm_sched_job_add_dependency(9)drm_sched_job_add_syncobj_dependency(9)drm_sched_job_add_resv_dependencies(9)drm_sched_job_add_implicit_dependencies(9)drm_sched_job_has_dependency(9)drm_sched_job_cleanup(9)drm_sched_wakeup(9)drm_sched_select_entity(9)drm_sched_get_finished_job(9)drm_sched_pick_best(9)drm_sched_free_job_work(9)drm_sched_run_job_work(9)drm_sched_init(9)drm_sched_fini(9)drm_sched_increase_karma(9)drm_sched_wqueue_ready(9)drm_sched_wqueue_stop(9)drm_sched_wqueue_start(9)drm_sched_is_stopped(9)drm_sched_job_is_signaled(9)
and that's the page!! π this little beauty lives in ./drivers/gpu/drm/scheduler, dated October 2026, and she's serving kernel API excellence. go forth and reinsert responsibly, bestie πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms