Home
last modified time | relevance | path

Searched refs:sched_engine (Results 1 – 22 of 22) sorted by relevance

/drivers/gpu/drm/i915/
Di915_scheduler.c39 static void assert_priolists(struct i915_sched_engine * const sched_engine) in assert_priolists() argument
47 GEM_BUG_ON(rb_first_cached(&sched_engine->queue) != in assert_priolists()
48 rb_first(&sched_engine->queue.rb_root)); in assert_priolists()
51 for (rb = rb_first_cached(&sched_engine->queue); rb; rb = rb_next(rb)) { in assert_priolists()
60 i915_sched_lookup_priolist(struct i915_sched_engine *sched_engine, int prio) in i915_sched_lookup_priolist() argument
66 lockdep_assert_held(&sched_engine->lock); in i915_sched_lookup_priolist()
67 assert_priolists(sched_engine); in i915_sched_lookup_priolist()
69 if (unlikely(sched_engine->no_priolist)) in i915_sched_lookup_priolist()
75 parent = &sched_engine->queue.rb_root.rb_node; in i915_sched_lookup_priolist()
90 p = &sched_engine->default_priolist; in i915_sched_lookup_priolist()
[all …]
Di915_scheduler.h42 i915_sched_lookup_priolist(struct i915_sched_engine *sched_engine, int prio);
55 i915_sched_engine_get(struct i915_sched_engine *sched_engine) in i915_sched_engine_get() argument
57 kref_get(&sched_engine->ref); in i915_sched_engine_get()
58 return sched_engine; in i915_sched_engine_get()
62 i915_sched_engine_put(struct i915_sched_engine *sched_engine) in i915_sched_engine_put() argument
64 kref_put(&sched_engine->ref, sched_engine->destroy); in i915_sched_engine_put()
68 i915_sched_engine_is_empty(struct i915_sched_engine *sched_engine) in i915_sched_engine_is_empty() argument
70 return RB_EMPTY_ROOT(&sched_engine->queue.rb_root); in i915_sched_engine_is_empty()
74 i915_sched_engine_reset_on_empty(struct i915_sched_engine *sched_engine) in i915_sched_engine_reset_on_empty() argument
76 if (i915_sched_engine_is_empty(sched_engine)) in i915_sched_engine_reset_on_empty()
[all …]
Di915_request.c240 spin_lock_irq(&locked->sched_engine->lock); in i915_request_active_engine()
242 spin_unlock(&locked->sched_engine->lock); in i915_request_active_engine()
244 spin_lock(&locked->sched_engine->lock); in i915_request_active_engine()
253 spin_unlock_irq(&locked->sched_engine->lock); in i915_request_active_engine()
563 lockdep_assert_held(&engine->sched_engine->lock); in __i915_request_submit()
654 spin_lock_irqsave(&engine->sched_engine->lock, flags); in i915_request_submit()
658 spin_unlock_irqrestore(&engine->sched_engine->lock, flags); in i915_request_submit()
672 lockdep_assert_held(&engine->sched_engine->lock); in __i915_request_unsubmit()
705 spin_lock_irqsave(&engine->sched_engine->lock, flags); in i915_request_unsubmit()
709 spin_unlock_irqrestore(&engine->sched_engine->lock, flags); in i915_request_unsubmit()
[all …]
Di915_scheduler_types.h174 bool (*disabled)(struct i915_sched_engine *sched_engine);
Di915_request.h631 lockdep_is_held(&rq->engine->sched_engine->lock)); in i915_request_active_timeline()
Di915_gpu_error.c1461 spin_lock_irqsave(&engine->sched_engine->lock, flags); in capture_engine()
1463 spin_unlock_irqrestore(&engine->sched_engine->lock, in capture_engine()
/drivers/gpu/drm/i915/gt/
Dintel_execlists_submission.c274 static int queue_prio(const struct i915_sched_engine *sched_engine) in queue_prio() argument
278 rb = rb_first_cached(&sched_engine->queue); in queue_prio()
319 if (engine->sched_engine->queue_priority_hint <= last_prio) in need_preempt()
326 if (!list_is_last(&rq->sched.link, &engine->sched_engine->requests) && in need_preempt()
341 queue_prio(engine->sched_engine)) > last_prio; in need_preempt()
368 lockdep_assert_held(&engine->sched_engine->lock); in __unwind_incomplete_requests()
371 &engine->sched_engine->requests, in __unwind_incomplete_requests()
383 pl = i915_sched_lookup_priolist(engine->sched_engine, in __unwind_incomplete_requests()
386 GEM_BUG_ON(i915_sched_engine_is_empty(engine->sched_engine)); in __unwind_incomplete_requests()
546 spin_lock_irq(&engine->sched_engine->lock); in resubmit_virtual_request()
[all …]
Dmock_engine.c240 lockdep_assert_held(&rq->engine->sched_engine->lock); in mock_add_to_engine()
241 list_move_tail(&rq->sched.link, &rq->engine->sched_engine->requests); in mock_add_to_engine()
256 spin_lock_irq(&locked->sched_engine->lock); in mock_remove_from_engine()
258 spin_unlock(&locked->sched_engine->lock); in mock_remove_from_engine()
259 spin_lock(&engine->sched_engine->lock); in mock_remove_from_engine()
263 spin_unlock_irq(&locked->sched_engine->lock); in mock_remove_from_engine()
284 spin_lock_irqsave(&engine->sched_engine->lock, flags); in mock_reset_cancel()
287 list_for_each_entry(rq, &engine->sched_engine->requests, sched.link) in mock_reset_cancel()
300 spin_unlock_irqrestore(&engine->sched_engine->lock, flags); in mock_reset_cancel()
314 i915_sched_engine_put(engine->sched_engine); in mock_engine_release()
[all …]
Dintel_engine_cs.c768 engine->sched_engine = i915_sched_engine_create(ENGINE_PHYSICAL); in engine_setup_common()
769 if (!engine->sched_engine) { in engine_setup_common()
773 engine->sched_engine->private_data = engine; in engine_setup_common()
797 i915_sched_engine_put(engine->sched_engine); in engine_setup_common()
837 spin_lock_irq(&engine->sched_engine->lock); in measure_breadcrumb_dw()
841 spin_unlock_irq(&engine->sched_engine->lock); in measure_breadcrumb_dw()
1008 GEM_BUG_ON(!list_empty(&engine->sched_engine->requests)); in intel_engine_cleanup_common()
1010 i915_sched_engine_put(engine->sched_engine); in intel_engine_cleanup_common()
1257 struct tasklet_struct *t = &engine->sched_engine->tasklet; in __intel_engine_flush_submission()
1297 if (!i915_sched_engine_is_empty(engine->sched_engine)) in intel_engine_is_idle()
[all …]
Dintel_ring_submission.c349 spin_lock_irqsave(&engine->sched_engine->lock, flags); in reset_rewind()
351 list_for_each_entry(pos, &engine->sched_engine->requests, sched.link) { in reset_rewind()
406 spin_unlock_irqrestore(&engine->sched_engine->lock, flags); in reset_rewind()
418 spin_lock_irqsave(&engine->sched_engine->lock, flags); in reset_cancel()
421 list_for_each_entry(request, &engine->sched_engine->requests, sched.link) in reset_cancel()
427 spin_unlock_irqrestore(&engine->sched_engine->lock, flags); in reset_cancel()
602 lockdep_assert_held(&engine->sched_engine->lock); in ring_context_ban()
603 list_for_each_entry_continue(rq, &engine->sched_engine->requests, in ring_context_ban()
1091 lockdep_assert_held(&rq->engine->sched_engine->lock); in add_to_engine()
1092 list_move_tail(&rq->sched.link, &rq->engine->sched_engine->requests); in add_to_engine()
[all …]
Dintel_engine_heartbeat.c131 if (i915_sched_engine_disabled(engine->sched_engine)) { in heartbeat()
155 } else if (engine->sched_engine->schedule && in heartbeat()
170 engine->sched_engine->schedule(rq, &attr); in heartbeat()
Dselftest_execlists.c46 tasklet_hi_schedule(&engine->sched_engine->tasklet); in wait_for_submit()
276 engine->sched_engine->schedule(rq[1], &attr); in live_unlite_restore()
556 tasklet_disable(&engine->sched_engine->tasklet); in engine_lock_reset_tasklet()
562 tasklet_enable(&engine->sched_engine->tasklet); in engine_lock_reset_tasklet()
577 tasklet_enable(&engine->sched_engine->tasklet); in engine_unlock_reset_tasklet()
631 engine->sched_engine->tasklet.callback(&engine->sched_engine->tasklet); in live_hold_reset()
920 engine->sched_engine->schedule(rq, &attr); in release_queue()
1203 tasklet_hi_schedule(&engine->sched_engine->tasklet); in live_timeslice_rewind()
1345 engine->sched_engine->schedule(rq, &attr); in live_timeslice_queue()
1891 engine->sched_engine->schedule(rq, &attr); in live_late_preempt()
[all …]
Dintel_breadcrumbs.c248 if (rq->engine->sched_engine->retire_inflight_request_prio) in signal_irq_work()
249 rq->engine->sched_engine->retire_inflight_request_prio(rq); in signal_irq_work()
Dintel_engine_pm.c278 GEM_BUG_ON(engine->sched_engine->queue_priority_hint != INT_MIN); in __engine_park()
Dintel_engine_types.h311 struct i915_sched_engine *sched_engine; member
Dintel_engine_user.c112 if (engine->sched_engine->schedule) in set_scheduler_caps()
Dselftest_reset.c324 struct tasklet_struct *t = &engine->sched_engine->tasklet; in igt_atomic_engine_reset()
Dselftest_lrc.c52 tasklet_hi_schedule(&engine->sched_engine->tasklet); in wait_for_submit()
1616 tasklet_disable(&engine->sched_engine->tasklet); in garbage_reset()
1621 tasklet_enable(&engine->sched_engine->tasklet); in garbage_reset()
Dselftest_hangcheck.c939 if (engine->sched_engine->schedule && arg->flags & TEST_PRIORITY) { in active_engine()
944 engine->sched_engine->schedule(rq[idx], &attr); in active_engine()
1887 struct tasklet_struct * const t = &engine->sched_engine->tasklet; in __igt_atomic_reset_engine()
/drivers/gpu/drm/i915/gt/uc/
Dintel_guc_submission.c237 lockdep_assert_held(&ce->engine->sched_engine->lock); in incr_context_blocked()
247 lockdep_assert_held(&ce->engine->sched_engine->lock); in decr_context_blocked()
516 struct i915_sched_engine * const sched_engine = guc->sched_engine; in guc_dequeue_one_context() local
522 lockdep_assert_held(&sched_engine->lock); in guc_dequeue_one_context()
530 while ((rb = rb_first_cached(&sched_engine->queue))) { in guc_dequeue_one_context()
547 rb_erase_cached(&p->node, &sched_engine->queue); in guc_dequeue_one_context()
558 tasklet_schedule(&sched_engine->tasklet); in guc_dequeue_one_context()
568 sched_engine->tasklet.callback = NULL; in guc_dequeue_one_context()
569 tasklet_disable_nosync(&sched_engine->tasklet); in guc_dequeue_one_context()
575 struct i915_sched_engine *sched_engine = in guc_submission_tasklet() local
[all …]
Dintel_guc.h37 struct i915_sched_engine *sched_engine; member
/drivers/gpu/drm/i915/gem/
Di915_gem_wait.c107 if (engine->sched_engine->schedule) in fence_set_priority()
108 engine->sched_engine->schedule(rq, attr); in fence_set_priority()