[Intel-gfx] [PATCH v9 2/3] drm/i915: Enable guest i915 full ppgtt functionality
Zhenyu Wang
zhenyuw at linux.intel.com
Mon Aug 14 02:23:27 UTC 2017
On 2017.08.11 12:46:48 +0300, Joonas Lahtinen wrote:
>
> > @@ -141,14 +141,19 @@ int intel_sanitize_enable_ppgtt(struct drm_i915_private *dev_priv,
> >
> > has_aliasing_ppgtt = dev_priv->info.has_aliasing_ppgtt;
> > has_full_ppgtt = dev_priv->info.has_full_ppgtt;
> > - has_full_48bit_ppgtt = dev_priv->info.has_full_48bit_ppgtt;
>
> Leave above line.
>
> >
> > if (intel_vgpu_active(dev_priv)) {
> > - /* emulation is too hard */
> > - has_full_ppgtt = false;
> > - has_full_48bit_ppgtt = false;
>
> has_full_ppgtt = false;
> has_full_48bit_ppgtt =
> intel_vgpu_has_full_48bit_ppgtt(dev_priv);
>
> > + has_full_ppgtt = intel_vgpu_has_full_ppgtt(dev_priv);
> > + /* GVT-g has no support for 32bit ppgtt */
> > + if (enable_ppgtt == 2 && has_full_ppgtt) {
> > + DRM_DEBUG_DRIVER("Force 48bit ppgtt for vGPU\n");
> > + enable_ppgtt = 3;
>
> Lets not do an upgrade for the user if they explicitly requested lower
> level. I'd just leave the option to be and it'll get downgraded to
> aliasing ppgtt.
>
If user specified enable_ppgtt=2, it will get enable_ppgtt=2 instead of
aliasing ppgtt, so we try to guard against that for current 48bit ppgtt
support on vgpu. Well either upgrade to full 48bit or downgrade to aliasing.
> > + }
> > }
> >
> > + has_full_48bit_ppgtt = has_full_ppgtt &&
> > + dev_priv->info.has_full_48bit_ppgtt;
> > +
>
> This can then be dropped too.
>
> I'll send a patch to disconnect the has_full_ppgtt and
> has_full_48bit_ppgtt flags.
>
That'll be good. As we have validated this full ppgtt on vgpu for
quite some time now and plan to push for 4.14. Are you able to
align with that? So I might send first 4.14 pull without this series,
then add them later for dinf.
>
> > if (!has_aliasing_ppgtt)
> > return 0;
> >
> > @@ -49,12 +49,18 @@ enum vgt_g2v_type {
> > > VGT_G2V_MAX,
> > };
> >
> > +/*
> > + * VGT capabilities type
> > + */
> > +#define VGT_CAPS_FULL_PPGTT_48BIT BIT(2)
>
> VGT_CAPS_FULL_48BIT_PPGTT for consistency
>
> > @@ -75,10 +75,17 @@ void i915_check_vgpu(struct drm_i915_private *dev_priv)
> > return;
> > }
> >
> > + dev_priv->vgpu.caps = __raw_i915_read32(dev_priv, vgtif_reg(vgt_caps));
> > +
> > dev_priv->vgpu.active = true;
> > DRM_INFO("Virtual GPU for Intel GVT-g detected.\n");
> > }
> >
> > +bool intel_vgpu_has_full_ppgtt(struct drm_i915_private *dev_priv)
>
> This should really be has_full_48bit_ppgtt() too.
>
> Regards, Joonas
> --
> Joonas Lahtinen
> Open Source Technology Center
> Intel Corporation
--
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-gfx/attachments/20170814/addfcb21/attachment.sig>
More information about the Intel-gfx
mailing list