drm/sched: Fix outdated comments referencing thread

The GPU scheduler's comments refer to a "thread" at various places.
Those are leftovers from commit a6149f0393 ("drm/sched: Convert drm
scheduler to use a work queue rather than kthread").

Replace all references to kthreads.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Signed-off-by: Philipp Stanner <phasta@kernel.org>
Link: https://lore.kernel.org/r/20250314101023.111248-2-phasta@kernel.org
This commit is contained in:
Philipp Stanner
2025-03-14 11:10:23 +01:00
parent 46462c4e0f
commit 1773ea5caf
3 changed files with 18 additions and 16 deletions
+4 -4
View File
@@ -545,10 +545,10 @@ void drm_sched_entity_select_rq(struct drm_sched_entity *entity)
return;
/*
* Only when the queue is empty are we guaranteed that the scheduler
* thread cannot change ->last_scheduled. To enforce ordering we need
* a read barrier here. See drm_sched_entity_pop_job() for the other
* side.
* Only when the queue is empty are we guaranteed that
* drm_sched_run_job_work() cannot change entity->last_scheduled. To
* enforce ordering we need a read barrier here. See
* drm_sched_entity_pop_job() for the other side.
*/
smp_rmb();
+13 -11
View File
@@ -391,7 +391,7 @@ static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
* drm_sched_job_done - complete a job
* @s_job: pointer to the job which is done
*
* Finish the job's fence and wake up the worker thread.
* Finish the job's fence and resubmit the work items.
*/
static void drm_sched_job_done(struct drm_sched_job *s_job, int result)
{
@@ -551,9 +551,10 @@ static void drm_sched_job_timedout(struct work_struct *work)
if (job) {
/*
* Remove the bad job so it cannot be freed by concurrent
* drm_sched_cleanup_jobs. It will be reinserted back after sched->thread
* is parked at which point it's safe.
* Remove the bad job so it cannot be freed by a concurrent
* &struct drm_sched_backend_ops.free_job. It will be
* reinserted after the scheduler's work items have been
* cancelled, at which point it's safe.
*/
list_del_init(&job->list);
spin_unlock(&sched->job_list_lock);
@@ -599,10 +600,10 @@ void drm_sched_stop(struct drm_gpu_scheduler *sched, struct drm_sched_job *bad)
/*
* Reinsert back the bad job here - now it's safe as
* drm_sched_get_finished_job cannot race against us and release the
* drm_sched_get_finished_job() cannot race against us and release the
* bad job at this point - we parked (waited for) any in progress
* (earlier) cleanups and drm_sched_get_finished_job will not be called
* now until the scheduler thread is unparked.
* (earlier) cleanups and drm_sched_get_finished_job() will not be
* called now until the scheduler's work items are submitted again.
*/
if (bad && bad->sched == sched)
/*
@@ -615,7 +616,8 @@ void drm_sched_stop(struct drm_gpu_scheduler *sched, struct drm_sched_job *bad)
* Iterate the job list from later to earlier one and either deactive
* their HW callbacks or remove them from pending list if they already
* signaled.
* This iteration is thread safe as sched thread is stopped.
* This iteration is thread safe as the scheduler's work items have been
* cancelled.
*/
list_for_each_entry_safe_reverse(s_job, tmp, &sched->pending_list,
list) {
@@ -680,9 +682,9 @@ void drm_sched_start(struct drm_gpu_scheduler *sched, int errno)
struct drm_sched_job *s_job, *tmp;
/*
* Locking the list is not required here as the sched thread is parked
* so no new jobs are being inserted or removed. Also concurrent
* GPU recovers can't run in parallel.
* Locking the list is not required here as the scheduler's work items
* are currently not running, so no new jobs are being inserted or
* removed. Also concurrent GPU recovers can't run in parallel.
*/
list_for_each_entry_safe(s_job, tmp, &sched->pending_list, list) {
struct dma_fence *fence = s_job->s_fence->parent;
+1 -1
View File
@@ -192,7 +192,7 @@ struct drm_sched_entity {
* @last_scheduled:
*
* Points to the finished fence of the last scheduled job. Only written
* by the scheduler thread, can be accessed locklessly from
* by drm_sched_entity_pop_job(). Can be accessed locklessly from
* drm_sched_job_arm() if the queue is empty.
*/
struct dma_fence __rcu *last_scheduled;