[PATCH] drm/i915: Fix GVT-g PVINFO version compatibility check
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Mon Jun 5 13:40:09 UTC 2017
On ma, 2017-06-05 at 11:00 +0800, Zhenyu Wang wrote:
> Current it's strictly checked if PVINFO version matches 1.0
> for GVT-g i915 guest which doesn't help for compatibility at
> all and forces GVT-g host can't extend PVINFO easily with version
> bump for real compatibility check.
>
> This fixes that to check minimal required PVINFO version instead
> and currently minimal 1.0 is required.
>
> Cc: Chuanxiao Dong <chuanxiao.dong at intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: stable at vger.kernel.org # 4.10+
> Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
<SNIP>
> +++ b/drivers/gpu/drm/i915/i915_pvinfo.h
> @@ -37,7 +37,8 @@
> #define VGT_VERSION_MINOR 0
>
> #define INTEL_VGT_IF_VERSION_ENCODE(major, minor) ((major) << 16 | (minor))
> -#define INTEL_VGT_IF_VERSION \
> +/* minimal required PVINFO version */
> +#define INTEL_VGT_IF_VERSION_REQUIRED \
> INTEL_VGT_IF_VERSION_ENCODE(VGT_VERSION_MAJOR, VGT_VERSION_MINOR)
I think this can be dropped completely.
> @@ -72,7 +72,7 @@ void i915_check_vgpu(struct drm_i915_private *dev_priv)
> version = INTEL_VGT_IF_VERSION_ENCODE(
> __raw_i915_read16(dev_priv, vgtif_reg(version_major)),
> __raw_i915_read16(dev_priv, vgtif_reg(version_minor)));
Here one would check that
if (version_major != VGT_VERSION_MAJOR)
DRM_INFO("VGT interface version mismatch!\n");
return;
}
That makes sure that major version must always match (incrementing
major version is a direct indication of interface incompatibility). I'm
not sure if we want to check the minor version at all, at load time.
Instead we should check the minor version for each new feature we know
has been added. That way an older i915 module could keep running in the
DOM0, and the newer i915 modules in VMs just wouldn't attempt to use
the new features until the DOM0 gets an update, too.
Regards, Joonas
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
More information about the intel-gvt-dev
mailing list