Lines Matching refs:workload

518 	struct intel_vgpu_workload *workload;
856 u32 base = s->workload->engine->mmio_base;
864 struct intel_vgpu_mm *shadow_mm = s->workload->shadow_mm;
880 &s->workload->lri_shadow_mm);
1007 * In order to let workload with inhibit context to generate
1009 * hw via LRIs in the workload with inhibit context. But as
1010 * indirect context is loaded prior to LRIs in workload, we don't
1013 * update reg values in it into vregs, so LRIs in workload with
1020 s->workload->ring_context_gpa + 12, &ctx_sr_ctl, 4);
1231 s->workload->pending_events);
1238 s->workload->pending_events);
1754 s->workload->pending_events);
1825 s->vgpu->gtt.ggtt_mm : s->workload->shadow_mm;
1838 gvt_vgpu_err("unknown cmd 0x%x, opcode=0x%x, addr_type=%s, ring %s, workload=%p\n",
1841 s->engine->name, s->workload);
1850 gvt_vgpu_err("unknown cmd 0x%x, opcode=0x%x, addr_type=%s, ring %s, workload=%p\n",
1853 s->engine->name, s->workload);
1884 gvt_vgpu_err("unknown cmd 0x%x, opcode=0x%x, addr_type=%s, ring %s, workload=%p\n",
1887 s->engine->name, s->workload);
1908 s->vgpu->gtt.ggtt_mm : s->workload->shadow_mm;
1970 list_add(&bb->list, &s->workload->shadow_bb);
2745 gvt_vgpu_err("unknown cmd 0x%x, opcode=0x%x, addr_type=%s, ring %s, workload=%p\n",
2748 s->engine->name, s->workload);
2756 s->workload, info->name);
2841 static int scan_workload(struct intel_vgpu_workload *workload)
2848 if (WARN_ON(!IS_ALIGNED(workload->rb_start, I915_GTT_PAGE_SIZE)))
2851 gma_head = workload->rb_start + workload->rb_head;
2852 gma_tail = workload->rb_start + workload->rb_tail;
2856 s.vgpu = workload->vgpu;
2857 s.engine = workload->engine;
2858 s.ring_start = workload->rb_start;
2859 s.ring_size = _RING_CTL_BUF_SIZE(workload->rb_ctl);
2862 s.rb_va = workload->shadow_ring_buffer_va;
2863 s.workload = workload;
2866 if (bypass_scan_mask & workload->engine->mask || gma_head == gma_tail)
2873 ret = command_scan(&s, workload->rb_head, workload->rb_tail,
2874 workload->rb_start, _RING_CTL_BUF_SIZE(workload->rb_ctl));
2886 struct intel_vgpu_workload *workload = container_of(wa_ctx,
2903 s.vgpu = workload->vgpu;
2904 s.engine = workload->engine;
2910 s.workload = workload;
2923 static int shadow_workload_ring_buffer(struct intel_vgpu_workload *workload)
2925 struct intel_vgpu *vgpu = workload->vgpu;
2931 guest_rb_size = _RING_CTL_BUF_SIZE(workload->rb_ctl);
2933 /* calculate workload ring buffer size */
2934 workload->rb_len = (workload->rb_tail + guest_rb_size -
2935 workload->rb_head) % guest_rb_size;
2937 gma_head = workload->rb_start + workload->rb_head;
2938 gma_tail = workload->rb_start + workload->rb_tail;
2939 gma_top = workload->rb_start + guest_rb_size;
2941 if (workload->rb_len > s->ring_scan_buffer_size[workload->engine->id]) {
2945 p = krealloc(s->ring_scan_buffer[workload->engine->id],
2946 workload->rb_len, GFP_KERNEL);
2951 s->ring_scan_buffer[workload->engine->id] = p;
2952 s->ring_scan_buffer_size[workload->engine->id] = workload->rb_len;
2955 shadow_ring_buffer_va = s->ring_scan_buffer[workload->engine->id];
2958 workload->shadow_ring_buffer_va = shadow_ring_buffer_va;
2969 gma_head = workload->rb_start;
2982 int intel_gvt_scan_and_shadow_ringbuffer(struct intel_vgpu_workload *workload)
2985 struct intel_vgpu *vgpu = workload->vgpu;
2987 ret = shadow_workload_ring_buffer(workload);
2989 gvt_vgpu_err("fail to shadow workload ring_buffer\n");
2993 ret = scan_workload(workload);
2995 gvt_vgpu_err("scan workload error\n");
3005 struct intel_vgpu_workload *workload = container_of(wa_ctx,
3008 struct intel_vgpu *vgpu = workload->vgpu;
3013 obj = i915_gem_object_create_shmem(workload->engine->i915,
3035 ret = copy_gma_to_hva(workload->vgpu,
3036 workload->vgpu->gtt.ggtt_mm,
3077 struct intel_vgpu_workload *workload = container_of(wa_ctx,
3080 struct intel_vgpu *vgpu = workload->vgpu;
3142 s.workload = NULL;
3162 int intel_gvt_scan_engine_context(struct intel_vgpu_workload *workload)
3164 struct intel_vgpu *vgpu = workload->vgpu;
3167 int ring_id = workload->engine->id;
3173 ctx_size = workload->engine->context_size - PAGE_SIZE;
3187 s.vgpu = workload->vgpu;
3188 s.engine = workload->engine;
3194 s.workload = workload;