mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
drm/sched: Make drm_sched_entity_kill() a public function
Some drivers do not care on teardown whether the last jobs pending in an entity are actually executed before teardown completed. For such scenarios, drm_sched_entity_flush() is not the ideal function since it's intended to wait for jobs to complete. Make drm_sched_entity_kill() public for that use-case and update the documentation. Suggested-by: Danilo Krummrich <dakr@kernel.org> Signed-off-by: Philipp Stanner <phasta@kernel.org> Link: https://patch.msgid.link/20260415144956.272506-2-phasta@kernel.org Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
parent
51c0256409
commit
2f5f05633e
|
|
@ -228,8 +228,16 @@ static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f,
|
|||
schedule_work(&job->work);
|
||||
}
|
||||
|
||||
/* Remove the entity from the scheduler and kill all pending jobs */
|
||||
static void drm_sched_entity_kill(struct drm_sched_entity *entity)
|
||||
/**
|
||||
* drm_sched_entity_kill - kill an entity's pending jobs and remove it
|
||||
* @entity: the entity to remove
|
||||
*
|
||||
* Removes the entity from the scheduler's run queue and kills all pending jobs.
|
||||
*
|
||||
* This function should be used over drm_sched_entity_flush() if it is not
|
||||
* desired to actually wait for all pending jobs to finish.
|
||||
*/
|
||||
void drm_sched_entity_kill(struct drm_sched_entity *entity)
|
||||
{
|
||||
struct drm_sched_job *job;
|
||||
struct dma_fence *prev;
|
||||
|
|
@ -267,6 +275,7 @@ static void drm_sched_entity_kill(struct drm_sched_entity *entity)
|
|||
}
|
||||
dma_fence_put(prev);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_sched_entity_kill);
|
||||
|
||||
/**
|
||||
* drm_sched_entity_flush - Flush a context entity
|
||||
|
|
|
|||
|
|
@ -691,6 +691,7 @@ int drm_sched_entity_init(struct drm_sched_entity *entity,
|
|||
unsigned int num_sched_list,
|
||||
atomic_t *guilty);
|
||||
long drm_sched_entity_flush(struct drm_sched_entity *entity, long timeout);
|
||||
void drm_sched_entity_kill(struct drm_sched_entity *entity);
|
||||
void drm_sched_entity_fini(struct drm_sched_entity *entity);
|
||||
void drm_sched_entity_destroy(struct drm_sched_entity *entity);
|
||||
void drm_sched_entity_set_priority(struct drm_sched_entity *entity,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user