Home | History | Annotate | Download | only in scheduler

Lines Matching refs:rq

73  * @rq: scheduler run queue
78 struct drm_sched_rq *rq)
80 spin_lock_init(&rq->lock);
81 INIT_LIST_HEAD(&rq->entities);
82 rq->current_entity = NULL;
83 rq->sched = sched;
89 * @rq: scheduler run queue
94 void drm_sched_rq_add_entity(struct drm_sched_rq *rq,
99 spin_lock(&rq->lock);
100 atomic_inc(&rq->sched->score);
101 list_add_tail(&entity->list, &rq->entities);
102 spin_unlock(&rq->lock);
108 * @rq: scheduler run queue
113 void drm_sched_rq_remove_entity(struct drm_sched_rq *rq,
118 spin_lock(&rq->lock);
119 atomic_dec(&rq->sched->score);
121 if (rq->current_entity == entity)
122 rq->current_entity = NULL;
123 spin_unlock(&rq->lock);
129 * @rq: scheduler run queue to check.
134 drm_sched_rq_select_entity(struct drm_sched_rq *rq)
138 spin_lock(&rq->lock);
140 entity = rq->current_entity;
142 list_for_each_entry_continue(entity, &rq->entities, list) {
144 rq->current_entity = entity;
146 spin_unlock(&rq->lock);
152 list_for_each_entry(entity, &rq->entities, list) {
155 rq->current_entity = entity;
157 spin_unlock(&rq->lock);
161 if (entity == rq->current_entity)
165 spin_unlock(&rq->lock);
181 struct drm_gpu_scheduler *sched = entity->rq->sched;
353 /* don't increase @bad's karma if it's from KERNEL RQ,
361 struct drm_sched_rq *rq = &sched->sched_rq[i];
363 spin_lock(&rq->lock);
364 list_for_each_entry_safe(entity, tmp, &rq->entities, list) {
374 spin_unlock(&rq->lock);
375 if (&entity->list != &rq->entities)
574 if (!entity->rq)
577 sched = entity->rq->sched;
581 job->s_priority = entity->rq - sched->sched_rq;
901 struct drm_sched_rq *rq = &sched->sched_rq[i];
902 spin_lock_destroy(&rq->lock);