Lines Matching refs:scheduler

274 	struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
280 spin_lock_irqsave(&scheduler->mmio_context_lock, flags);
282 scheduler->engine_owner[ring_id]) {
284 intel_gvt_switch_mmio(scheduler->engine_owner[ring_id],
286 scheduler->engine_owner[ring_id] = NULL;
288 spin_unlock_irqrestore(&scheduler->mmio_context_lock, flags);
293 workload = scheduler->current_workload[ring_id];
299 spin_lock_irqsave(&scheduler->mmio_context_lock, flags);
300 if (workload->vgpu != scheduler->engine_owner[ring_id]) {
302 intel_gvt_switch_mmio(scheduler->engine_owner[ring_id],
304 scheduler->engine_owner[ring_id] = workload->vgpu;
308 spin_unlock_irqrestore(&scheduler->mmio_context_lock, flags);
360 * scheduler might get a wrong state of it during reset. Since the
802 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
811 if (!scheduler->current_vgpu) {
816 if (scheduler->need_reschedule) {
821 if (!scheduler->current_vgpu->active ||
822 list_empty(workload_q_head(scheduler->current_vgpu, engine)))
829 if (scheduler->current_workload[engine->id]) {
830 workload = scheduler->current_workload[engine->id];
842 scheduler->current_workload[engine->id] =
843 list_first_entry(workload_q_head(scheduler->current_vgpu,
847 workload = scheduler->current_workload[engine->id];
1021 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1023 scheduler->current_workload[ring_id];
1067 scheduler->current_workload[ring_id] = NULL;
1094 wake_up(&scheduler->workload_complete_wq);
1096 if (gvt->scheduler.need_reschedule)
1108 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1119 add_wait_queue(&scheduler->waitq[engine->id], &wait);
1127 remove_wait_queue(&scheduler->waitq[engine->id], &wait);
1185 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1190 wait_event(scheduler->workload_complete_wq,
1197 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1201 gvt_dbg_core("clean workload scheduler\n");
1207 kthread_stop(scheduler->thread[i]);
1213 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1218 gvt_dbg_core("init workload scheduler\n");
1220 init_waitqueue_head(&scheduler->workload_complete_wq);
1223 init_waitqueue_head(&scheduler->waitq[i]);
1225 scheduler->thread[i] = kthread_run(workload_thread, engine,
1227 if (IS_ERR(scheduler->thread[i])) {
1229 ret = PTR_ERR(scheduler->thread[i]);
1741 wake_up(&workload->vgpu->gvt->scheduler.waitq[workload->engine->id]);