Lines Matching defs:gvt
48 #include "gvt.h"
87 struct drm_i915_private *dev_priv = workload->vgpu->gvt->gt->i915;
130 struct intel_gvt *gvt = vgpu->gvt;
218 if (IS_BROADWELL(gvt->gt->i915) && workload->engine->id == RCS0)
290 struct intel_gvt *gvt = container_of(nb, struct intel_gvt,
292 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
379 * requests from gvt always set the has_init_breadcrumb flag, here
524 struct intel_gvt *gvt = workload->vgpu->gvt;
525 const int gmadr_bytes = gvt->device_info.gmadr_bytes_in_cmd;
848 pick_next_workload(struct intel_gvt *gvt, struct intel_engine_cs *engine)
850 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
853 mutex_lock(&gvt->sched_lock);
902 mutex_unlock(&gvt->sched_lock);
1056 for_each_engine_masked(engine, vgpu->gvt->gt, engine_mask, tmp) {
1066 static void complete_current_workload(struct intel_gvt *gvt, int ring_id)
1068 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1077 mutex_lock(&gvt->sched_lock);
1143 if (gvt->scheduler.need_reschedule)
1144 intel_gvt_request_service(gvt, INTEL_GVT_REQUEST_EVENT_SCHED);
1146 mutex_unlock(&gvt->sched_lock);
1154 struct intel_gvt *gvt = engine->i915->gvt;
1155 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1168 workload = pick_next_workload(gvt, engine);
1215 complete_current_workload(gvt, engine->id);
1231 struct intel_gvt *gvt = vgpu->gvt;
1232 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1242 void intel_gvt_clean_workload_scheduler(struct intel_gvt *gvt)
1244 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1250 for_each_engine(engine, gvt->gt, i) {
1253 &gvt->shadow_ctx_notifier_block[i]);
1258 int intel_gvt_init_workload_scheduler(struct intel_gvt *gvt)
1260 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1269 for_each_engine(engine, gvt->gt, i) {
1273 "gvt:%s", engine->name);
1280 gvt->shadow_ctx_notifier_block[i].notifier_call =
1283 &gvt->shadow_ctx_notifier_block[i]);
1289 intel_gvt_clean_workload_scheduler(gvt);
1327 for_each_engine(engine, vgpu->gvt->gt, id)
1384 struct drm_i915_private *i915 = vgpu->gvt->gt->i915;
1397 for_each_engine(engine, vgpu->gvt->gt, i) {
1422 s->workloads = kmem_cache_create_usercopy("gvt-g_vgpu_workload",
1444 for_each_engine(engine, vgpu->gvt->gt, i) {
1470 struct drm_i915_private *i915 = vgpu->gvt->gt->i915;
1784 intel_gvt_kick_schedule(workload->vgpu->gvt);
1785 wake_up(&workload->vgpu->gvt->scheduler.waitq[workload->engine->id]);