[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