[PATCH] drm/i915/gvt: use context lrc_reg_state for shadow ppgtt override

Zhao, Yan Y yan.y.zhao at intel.com
Wed May 6 11:14:00 UTC 2020


Reviewed-by: Yan Zhao <yan.y.zhao at intel.com>

> -----Original Message-----
> From: Zhenyu Wang <zhenyuw at linux.intel.com>
> Sent: Wednesday, May 6, 2020 6:00 PM
> To: intel-gvt-dev at lists.freedesktop.org
> Cc: Zhao, Yan Y <yan.y.zhao at intel.com>
> Subject: [PATCH] drm/i915/gvt: use context lrc_reg_state for shadow ppgtt
> override
> 
> We can replace kmap by using context's lrc_reg_state directly for shadow
> ppgtt table override.
> 
> Cc: Yan Zhao <yan.y.zhao at intel.com>
> Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/gvt/scheduler.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c
> b/drivers/gpu/drm/i915/gvt/scheduler.c
> index 6ab1d95c1fae..52a1ff3b4ac7 100644
> --- a/drivers/gpu/drm/i915/gvt/scheduler.c
> +++ b/drivers/gpu/drm/i915/gvt/scheduler.c
> @@ -58,10 +58,8 @@ static void set_context_pdp_root_pointer(
> 
>  static void update_shadow_pdps(struct intel_vgpu_workload *workload)  {
> -	struct drm_i915_gem_object *ctx_obj =
> -		workload->req->context->state->obj;
>  	struct execlist_ring_context *shadow_ring_context;
> -	struct page *page;
> +	struct intel_context *ctx = workload->req->context;
> 
>  	if (WARN_ON(!workload->shadow_mm))
>  		return;
> @@ -69,11 +67,9 @@ static void update_shadow_pdps(struct
> intel_vgpu_workload *workload)
>  	if (WARN_ON(!atomic_read(&workload->shadow_mm->pincount)))
>  		return;
> 
> -	page = i915_gem_object_get_page(ctx_obj, LRC_STATE_PN);
> -	shadow_ring_context = kmap(page);
> +	shadow_ring_context = (struct execlist_ring_context
> +*)ctx->lrc_reg_state;
>  	set_context_pdp_root_pointer(shadow_ring_context,
>  			(void *)workload->shadow_mm-
> >ppgtt_mm.shadow_pdps);
> -	kunmap(page);
>  }
> 
>  /*
> --
> 2.26.2



More information about the intel-gvt-dev mailing list