/kernel/linux/linux-5.10/drivers/gpu/drm/scheduler/ |
H A D | sched_main.c | 270 static void drm_sched_job_begin(struct drm_sched_job *s_job) in drm_sched_job_begin() argument 272 struct drm_gpu_scheduler *sched = s_job->sched; in drm_sched_job_begin() 275 list_add_tail(&s_job->node, &sched->ring_mirror_list); in drm_sched_job_begin() 379 struct drm_sched_job *s_job, *tmp; in drm_sched_stop() local 403 list_for_each_entry_safe_reverse(s_job, tmp, &sched->ring_mirror_list, node) { in drm_sched_stop() 404 if (s_job->s_fence->parent && in drm_sched_stop() 405 dma_fence_remove_callback(s_job->s_fence->parent, in drm_sched_stop() 406 &s_job->cb)) { in drm_sched_stop() 414 list_del_init(&s_job->node); in drm_sched_stop() 418 * Wait for job's HW fence callback to finish using s_job in drm_sched_stop() 457 struct drm_sched_job *s_job, *tmp; drm_sched_start() local 503 struct drm_sched_job *s_job, *tmp; drm_sched_resubmit_jobs() local 647 struct drm_sched_job *s_job = container_of(cb, struct drm_sched_job, cb); drm_sched_process_job() local [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_job.c | 34 static enum drm_gpu_sched_stat amdgpu_job_timedout(struct drm_sched_job *s_job) in amdgpu_job_timedout() argument 36 struct amdgpu_ring *ring = to_amdgpu_ring(s_job->sched); in amdgpu_job_timedout() 37 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() 45 __func__, s_job->sched->name); in amdgpu_job_timedout() 55 amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout() 57 s_job->sched->name); in amdgpu_job_timedout() 68 dma_fence_set_error(&s_job->s_fence->finished, -ETIME); in amdgpu_job_timedout() 178 static void amdgpu_job_free_cb(struct drm_sched_job *s_job) in amdgpu_job_free_cb() argument 180 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_free_cb() 182 drm_sched_job_cleanup(s_job); in amdgpu_job_free_cb() 323 struct drm_sched_job *s_job; amdgpu_job_stop_all_jobs_on_sched() local [all...] |
H A D | amdgpu_debugfs.c | 1849 struct drm_sched_job *s_job; in amdgpu_ib_preempt_job_recovery() local 1853 list_for_each_entry(s_job, &sched->pending_list, list) { in amdgpu_ib_preempt_job_recovery() 1854 fence = sched->ops->run_job(s_job); in amdgpu_ib_preempt_job_recovery() 1863 struct drm_sched_job *s_job, *tmp; in amdgpu_ib_preempt_mark_partial_job() local 1885 list_for_each_entry_safe(s_job, tmp, &sched->pending_list, list) { in amdgpu_ib_preempt_mark_partial_job() 1886 if (dma_fence_is_signaled(&s_job->s_fence->finished)) { in amdgpu_ib_preempt_mark_partial_job() 1888 list_del_init(&s_job->list); in amdgpu_ib_preempt_mark_partial_job() 1889 sched->ops->free_job(s_job); in amdgpu_ib_preempt_mark_partial_job() 1892 job = to_amdgpu_job(s_job); in amdgpu_ib_preempt_mark_partial_job()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/scheduler/ |
H A D | sched_main.c | 261 * @s_job: pointer to the job which is done 265 static void drm_sched_job_done(struct drm_sched_job *s_job, int result) in drm_sched_job_done() argument 267 struct drm_sched_fence *s_fence = s_job->s_fence; in drm_sched_job_done() 288 struct drm_sched_job *s_job = container_of(cb, struct drm_sched_job, cb); in drm_sched_job_done_cb() local 290 drm_sched_job_done(s_job, f->error); in drm_sched_job_done_cb() 373 static void drm_sched_job_begin(struct drm_sched_job *s_job) in drm_sched_job_begin() argument 375 struct drm_gpu_scheduler *sched = s_job->sched; in drm_sched_job_begin() 378 list_add_tail(&s_job->list, &sched->pending_list); in drm_sched_job_begin() 440 struct drm_sched_job *s_job, *tmp; in drm_sched_stop() local 464 list_for_each_entry_safe_reverse(s_job, tm in drm_sched_stop() 521 struct drm_sched_job *s_job, *tmp; drm_sched_start() local 578 struct drm_sched_job *s_job, *tmp; drm_sched_resubmit_jobs() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_job.c | 31 static void amdgpu_job_timedout(struct drm_sched_job *s_job) in amdgpu_job_timedout() argument 33 struct amdgpu_ring *ring = to_amdgpu_ring(s_job->sched); in amdgpu_job_timedout() 34 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() 41 amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout() 43 s_job->sched->name); in amdgpu_job_timedout() 124 static void amdgpu_job_free_cb(struct drm_sched_job *s_job) in amdgpu_job_free_cb() argument 126 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_free_cb() 128 drm_sched_job_cleanup(s_job); in amdgpu_job_free_cb() 249 struct drm_sched_job *s_job; in amdgpu_job_stop_all_jobs_on_sched() local 262 while ((s_job in amdgpu_job_stop_all_jobs_on_sched() [all...] |
H A D | amdgpu_debugfs.c | 1404 struct drm_sched_job *s_job; in amdgpu_ib_preempt_job_recovery() local 1408 list_for_each_entry(s_job, &sched->ring_mirror_list, node) { in amdgpu_ib_preempt_job_recovery() 1409 fence = sched->ops->run_job(s_job); in amdgpu_ib_preempt_job_recovery() 1418 struct drm_sched_job *s_job, *tmp; in amdgpu_ib_preempt_mark_partial_job() local 1440 list_for_each_entry_safe(s_job, tmp, &sched->ring_mirror_list, node) { in amdgpu_ib_preempt_mark_partial_job() 1441 if (dma_fence_is_signaled(&s_job->s_fence->finished)) { in amdgpu_ib_preempt_mark_partial_job() 1443 list_del_init(&s_job->node); in amdgpu_ib_preempt_mark_partial_job() 1444 sched->ops->free_job(s_job); in amdgpu_ib_preempt_mark_partial_job() 1447 job = to_amdgpu_job(s_job); in amdgpu_ib_preempt_mark_partial_job()
|
/kernel/linux/linux-5.10/include/drm/ |
H A D | gpu_scheduler.h | 203 static inline bool drm_sched_invalidate_job(struct drm_sched_job *s_job, in drm_sched_invalidate_job() argument 206 return (s_job && atomic_inc_return(&s_job->karma) > threshold); in drm_sched_invalidate_job() 315 void drm_sched_job_kickout(struct drm_sched_job *s_job);
|
/kernel/linux/linux-6.6/include/drm/ |
H A D | gpu_scheduler.h | 376 static inline bool drm_sched_invalidate_job(struct drm_sched_job *s_job, in drm_sched_invalidate_job() argument 379 return s_job && atomic_inc_return(&s_job->karma) > threshold; in drm_sched_invalidate_job()
|