Lines Matching defs:entity
44 * The jobs in a entity are always scheduled in the order that they were pushed.
82 * drm_sched_rq_add_entity - add an entity
85 * @entity: scheduler entity
87 * Adds a scheduler entity to the run queue.
90 struct drm_sched_entity *entity)
92 if (!list_empty(&entity->list))
96 list_add_tail(&entity->list, &rq->entities);
101 * drm_sched_rq_remove_entity - remove an entity
104 * @entity: scheduler entity
106 * Removes a scheduler entity from the run queue.
109 struct drm_sched_entity *entity)
111 if (list_empty(&entity->list))
115 list_del_init(&entity->list);
116 if (rq->current_entity == entity)
122 * drm_sched_rq_select_entity - Select an entity which could provide a job to run
126 * Try to find a ready entity, returns NULL if none found.
131 struct drm_sched_entity *entity;
135 entity = rq->current_entity;
136 if (entity) {
137 list_for_each_entry_continue(entity, &rq->entities, list) {
138 if (drm_sched_entity_is_ready(entity)) {
139 rq->current_entity = entity;
140 reinit_completion(&entity->entity_idle);
142 return entity;
147 list_for_each_entry(entity, &rq->entities, list) {
149 if (drm_sched_entity_is_ready(entity)) {
150 rq->current_entity = entity;
151 reinit_completion(&entity->entity_idle);
153 return entity;
156 if (entity == rq->current_entity)
169 * @entity: the entity which depends on the above fence
174 struct drm_sched_entity *entity)
176 struct drm_gpu_scheduler *sched = entity->rq->sched;
181 if (fence->context == entity->fence_context)
326 * limit of the scheduler then the respective sched entity is marked guilty and
333 struct drm_sched_entity *entity;
347 list_for_each_entry_safe(entity, tmp, &rq->entities, list) {
349 entity->fence_context) {
352 if (entity->guilty)
353 atomic_set(entity->guilty, 1);
358 if (&entity->list != &rq->entities)
540 * @entity: scheduler entity to use
549 struct drm_sched_entity *entity,
554 drm_sched_entity_select_rq(entity);
555 if (!entity->rq)
558 sched = entity->rq->sched;
561 job->entity = entity;
562 job->s_priority = entity->rq - sched->sched_rq;
563 job->s_fence = drm_sched_fence_create(entity, owner);
612 * drm_sched_select_entity - Select next entity to process
616 * Returns the entity to process or NULL if none are found.
621 struct drm_sched_entity *entity;
629 entity = drm_sched_rq_select_entity(&sched->sched_rq[i]);
630 if (entity)
634 return entity;
771 struct drm_sched_entity *entity = NULL;
780 (entity = drm_sched_select_entity(sched))) ||
789 if (!entity)
792 sched_job = drm_sched_entity_pop_job(entity);
794 complete(&entity->entity_idle);
804 trace_drm_run_job(sched_job, entity);