[PATCH v3] drm/i915/gvt: Fix guest i915 full ppgtt blocking issue

Zhenyu Wang zhenyuw at linux.intel.com
Wed May 24 02:18:32 UTC 2017


On 2017.05.23 13:33:55 +0800, Tina Zhang wrote:
> Guest i915 full ppgtt functionality was blocking by an issue, which would
> lead to gpu hardware hang. Guest i915 driver may update the ppgtt table
> just before this workload is going to be submitted to the hardware by
> device model. This case wasn't handled well by device model before, due
> to the small time window between removing old ppgtt entry and adding the
> new one. Errors occur when the workload is executed by hardware during
> that small time window. This patch is to remove this time window by adding
> the new ppgtt entry first and then remove the old one.
> 
> Changes in v2:
> - Move VGT_CAPS_FULL_PPGTT introduction to patch 2/4. (Joonas)
> 
> Changes since v2:
> - Divide the whole patch set into two separate patch series, with one
>   patch in i915 side to check guest i915 full ppgtt capability and enable
>   it when this capability is supported by the device model, and the other
>   one in gvt side which fixs the blocking issue and enables the device
>   model to provide the capability to guest. And this patch focuses on gvt
>   side. (Joonas)
> - Change the title from "reorder the shadow ppgtt update process by adding
>   entry first" to "Fix guest i915 full ppgtt blocking issue". (Tina)
>

So this one actually depends on your first i915 vgpu full ppgtt
change, can't be applied alone in gvt tree, either apply through gvt
tree together or I need to backmerge i915 once first one pushed. Joonas?

> diff --git a/drivers/gpu/drm/i915/gvt/vgpu.c b/drivers/gpu/drm/i915/gvt/vgpu.c
> index 6e3cbd8..23578c1 100644
> --- a/drivers/gpu/drm/i915/gvt/vgpu.c
> +++ b/drivers/gpu/drm/i915/gvt/vgpu.c
> @@ -43,6 +43,7 @@ void populate_pvinfo_page(struct intel_vgpu *vgpu)
>  	vgpu_vreg(vgpu, vgtif_reg(version_minor)) = 0;
>  	vgpu_vreg(vgpu, vgtif_reg(display_ready)) = 0;
>  	vgpu_vreg(vgpu, vgtif_reg(vgt_id)) = vgpu->id;
> +	vgpu_vreg(vgpu, vgtif_reg(vgt_caps)) = VGT_CAPS_FULL_PPGTT;
>  	vgpu_vreg(vgpu, vgtif_reg(avail_rs.mappable_gmadr.base)) =
>  		vgpu_aperture_gmadr_base(vgpu);
>  	vgpu_vreg(vgpu, vgtif_reg(avail_rs.mappable_gmadr.size)) =

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20170524/96f3a59f/attachment.sig>


More information about the intel-gvt-dev mailing list