Home | History | Annotate | Download | only in scheduler

Lines Matching defs:entity

46  * The jobs in a entity are always scheduled in the order that they were pushed.
87 * drm_sched_rq_add_entity - add an entity
90 * @entity: scheduler entity
92 * Adds a scheduler entity to the run queue.
95 struct drm_sched_entity *entity)
97 if (!list_empty(&entity->list))
101 list_add_tail(&entity->list, &rq->entities);
106 * drm_sched_rq_remove_entity - remove an entity
109 * @entity: scheduler entity
111 * Removes a scheduler entity from the run queue.
114 struct drm_sched_entity *entity)
116 if (list_empty(&entity->list))
120 list_del_init(&entity->list);
121 if (rq->current_entity == entity)
127 * drm_sched_rq_select_entity - Select an entity which could provide a job to run
131 * Try to find a ready entity, returns NULL if none found.
136 struct drm_sched_entity *entity;
140 entity = rq->current_entity;
141 if (entity) {
142 list_for_each_entry_continue(entity, &rq->entities, list) {
143 if (drm_sched_entity_is_ready(entity)) {
144 rq->current_entity = entity;
145 reinit_completion(&entity->entity_idle);
147 return entity;
152 list_for_each_entry(entity, &rq->entities, list) {
154 if (drm_sched_entity_is_ready(entity)) {
155 rq->current_entity = entity;
156 reinit_completion(&entity->entity_idle);
158 return entity;
161 if (entity == rq->current_entity)
174 * @entity: the entity which depends on the above fence
179 struct drm_sched_entity *entity)
181 struct drm_gpu_scheduler *sched = entity->rq->sched;
186 if (fence->context == entity->fence_context)
343 * limit of the scheduler then the respective sched entity is marked guilty and
350 struct drm_sched_entity *entity;
364 list_for_each_entry_safe(entity, tmp, &rq->entities, list) {
366 entity->fence_context) {
369 if (entity->guilty)
370 atomic_set(entity->guilty, 1);
375 if (&entity->list != &rq->entities)
559 * @entity: scheduler entity to use
568 struct drm_sched_entity *entity,
573 drm_sched_entity_select_rq(entity);
574 if (!entity->rq)
577 sched = entity->rq->sched;
580 job->entity = entity;
581 job->s_priority = entity->rq - sched->sched_rq;
582 job->s_fence = drm_sched_fence_create(entity, owner);
633 * drm_sched_select_entity - Select next entity to process
637 * Returns the entity to process or NULL if none are found.
642 struct drm_sched_entity *entity;
650 entity = drm_sched_rq_select_entity(&sched->sched_rq[i]);
651 if (entity)
655 return entity;
761 struct drm_sched_entity *entity = NULL;
772 (entity = drm_sched_select_entity(sched))) ||
782 if (!entity)
785 sched_job = drm_sched_entity_pop_job(entity);
787 complete(&entity->entity_idle);