Lines Matching defs:scheduler

292 	struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
298 spin_lock_irqsave(&scheduler->mmio_context_lock, flags);
300 scheduler->engine_owner[ring_id]) {
302 intel_gvt_switch_mmio(scheduler->engine_owner[ring_id],
304 scheduler->engine_owner[ring_id] = NULL;
306 spin_unlock_irqrestore(&scheduler->mmio_context_lock, flags);
311 workload = scheduler->current_workload[ring_id];
317 spin_lock_irqsave(&scheduler->mmio_context_lock, flags);
318 if (workload->vgpu != scheduler->engine_owner[ring_id]) {
320 intel_gvt_switch_mmio(scheduler->engine_owner[ring_id],
322 scheduler->engine_owner[ring_id] = workload->vgpu;
326 spin_unlock_irqrestore(&scheduler->mmio_context_lock, flags);
378 * scheduler might get a wrong state of it during reset. Since the
850 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
859 if (!scheduler->current_vgpu) {
864 if (scheduler->need_reschedule) {
870 scheduler->current_vgpu->status) ||
871 list_empty(workload_q_head(scheduler->current_vgpu, engine)))
878 if (scheduler->current_workload[engine->id]) {
879 workload = scheduler->current_workload[engine->id];
891 scheduler->current_workload[engine->id] =
892 list_first_entry(workload_q_head(scheduler->current_vgpu,
896 workload = scheduler->current_workload[engine->id];
1068 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1070 scheduler->current_workload[ring_id];
1114 scheduler->current_workload[ring_id] = NULL;
1141 wake_up(&scheduler->workload_complete_wq);
1143 if (gvt->scheduler.need_reschedule)
1155 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1166 add_wait_queue(&scheduler->waitq[engine->id], &wait);
1174 remove_wait_queue(&scheduler->waitq[engine->id], &wait);
1232 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1237 wait_event(scheduler->workload_complete_wq,
1244 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1248 gvt_dbg_core("clean workload scheduler\n");
1254 kthread_stop(scheduler->thread[i]);
1260 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1265 gvt_dbg_core("init workload scheduler\n");
1267 init_waitqueue_head(&scheduler->workload_complete_wq);
1270 init_waitqueue_head(&scheduler->waitq[i]);
1272 scheduler->thread[i] = kthread_run(workload_thread, engine,
1274 if (IS_ERR(scheduler->thread[i])) {
1276 ret = PTR_ERR(scheduler->thread[i]);
1785 wake_up(&workload->vgpu->gvt->scheduler.waitq[workload->engine->id]);