Home | History | Annotate | Download | only in gvt

Lines Matching defs:gvt

49 #include "gvt.h"
92 struct drm_i915_private *dev_priv = workload->vgpu->gvt->dev_priv;
135 struct intel_gvt *gvt = vgpu->gvt;
186 context_page_num = gvt->dev_priv->engine[ring_id]->context_size;
190 if (IS_BROADWELL(gvt->dev_priv) && ring_id == RCS0)
220 struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
236 struct intel_gvt *gvt = container_of(nb, struct intel_gvt,
238 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
325 * requests from gvt always set the has_init_breadcrumb flag, here
453 struct intel_gvt *gvt = workload->vgpu->gvt;
454 const int gmadr_bytes = gvt->device_info.gmadr_bytes_in_cmd;
576 struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
731 struct intel_gvt *gvt, int ring_id)
733 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
736 mutex_lock(&gvt->sched_lock);
783 mutex_unlock(&gvt->sched_lock);
791 struct intel_gvt *gvt = vgpu->gvt;
798 struct drm_i915_private *dev_priv = gvt->dev_priv;
826 if (IS_BROADWELL(gvt->dev_priv) && rq->engine->id == RCS0)
877 struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
893 static void complete_current_workload(struct intel_gvt *gvt, int ring_id)
895 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
904 mutex_lock(&gvt->sched_lock);
947 * has occurred GPU hang or something wrong with i915/GVT,
948 * and GVT won't inject context switch interrupt to guest.
967 if (gvt->scheduler.need_reschedule)
968 intel_gvt_request_service(gvt, INTEL_GVT_REQUEST_EVENT_SCHED);
970 mutex_unlock(&gvt->sched_lock);
975 struct intel_gvt *gvt;
982 struct intel_gvt *gvt = p->gvt;
984 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
988 bool need_force_wake = (INTEL_GEN(gvt->dev_priv) >= 9);
990 struct intel_runtime_pm *rpm = &gvt->dev_priv->runtime_pm;
999 workload = pick_next_workload(gvt, ring_id);
1020 intel_uncore_forcewake_get(&gvt->dev_priv->uncore,
1046 complete_current_workload(gvt, ring_id);
1049 intel_uncore_forcewake_put(&gvt->dev_priv->uncore,
1062 struct intel_gvt *gvt = vgpu->gvt;
1063 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1073 void intel_gvt_clean_workload_scheduler(struct intel_gvt *gvt)
1075 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1081 for_each_engine(engine, gvt->dev_priv, i) {
1084 &gvt->shadow_ctx_notifier_block[i]);
1089 int intel_gvt_init_workload_scheduler(struct intel_gvt *gvt)
1091 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
1101 for_each_engine(engine, gvt->dev_priv, i) {
1110 param->gvt = gvt;
1114 "gvt workload %d", i);
1121 gvt->shadow_ctx_notifier_block[i].notifier_call =
1124 &gvt->shadow_ctx_notifier_block[i]);
1128 intel_gvt_clean_workload_scheduler(gvt);
1168 for_each_engine(engine, vgpu->gvt->dev_priv, id)
1225 struct drm_i915_private *i915 = vgpu->gvt->dev_priv;
1270 s->workloads = kmem_cache_create_usercopy("gvt-g_vgpu_workload",
1467 struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
1610 intel_gvt_kick_schedule(workload->vgpu->gvt);
1611 wake_up(&workload->vgpu->gvt->scheduler.waitq[workload->ring_id]);