[igt-dev] [PATCH i-g-t 1/2] lib/i915/intel_memory_region: Provide system memory region stub
Petri Latvala
petri.latvala at intel.com
Thu Dec 9 11:19:34 UTC 2021
On Wed, Dec 08, 2021 at 06:24:15PM +0100, Zbigniew Kempczyński wrote:
> For stable kernels we can currently get -ENODEV on integrated gens
> when no CONFIG_DRM_I915_UNSTABLE_FAKE_LMEM is set.
>
> Provide system memory region stub to avoid failing on querying
> kernel for memory regions.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Ashutosh Dixit <ashutosh.dixit at intel.com>
> ---
> lib/i915/intel_memory_region.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/lib/i915/intel_memory_region.c b/lib/i915/intel_memory_region.c
> index 058b273dc..668e39439 100644
> --- a/lib/i915/intel_memory_region.c
> +++ b/lib/i915/intel_memory_region.c
> @@ -123,9 +123,18 @@ struct drm_i915_query_memory_regions *gem_get_query_memory_regions(int fd)
> * Any DRM_I915_QUERY_MEMORY_REGIONS specific errors are encoded in the
> * item.length, even though the ioctl might still return success.
> */
> +
> if (item.length < 0) {
> - igt_critical("DRM_I915_QUERY_MEMORY_REGIONS failed with %d\n",
> - item.length);
> + /*
> + * If kernel supports query but not memory regions query
> + * just return predefined system memory region only.
> + */
> + size_t sys_qi_size =
> + (char *) &query_info->regions[1] - (char *) query_info;
> +
> + query_info = calloc(1, sys_qi_size);
> + query_info->num_regions = 1;
> + query_info->regions[0].region.memory_class = I915_MEMORY_CLASS_SYSTEM;
> goto out;
> }
>
> --
> 2.26.0
>
Oh wow, I thought this was stubbed "properly" (for lack of a better
word) a long time ago...
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
More information about the igt-dev
mailing list