Hi Nirmoy,

The changes in this series make sense to me. I searched my code base, there are 
a few other places where stolen memory is allocated:

1) intel_dpt_create: I don't know what is dpt. Should we also consider this 
one? Maybe we never read from cpu?
2) create_ring_vma: I think cpu only write ring buffer but never read it. So 
should be okay.
3) vlv_rc6_init
4) there are a few places calling 
i915_gem_object_create_stolen_for_preallocated. I think this is also stolen 
memory?

For integrated gpu like MTL, do we use stolen memory for ggtt? If yes, does CPU 
only write ggtt/never read? 

Thanks,
Oak

> -----Original Message-----
> From: Das, Nirmoy <nirmoy....@intel.com>
> Sent: June 30, 2023 1:02 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Das, Nirmoy <nirmoy....@intel.com>; Zeng, Oak <oak.z...@intel.com>; Jani
> Nikula <jani.nik...@linux.intel.com>; Joonas Lahtinen
> <joonas.lahti...@linux.intel.com>; Andi Shyti <andi.sh...@linux.intel.com>;
> Hajda, Andrzej <andrzej.ha...@intel.com>
> Subject: [PATCH 1/2] drm/i915/gt: Do not use stolen on MTL
> 
> Use smem on MTL due to a HW bug in MTL that prevents
> reading from stolen memory using LMEM BAR.
> 
> Cc: Oak Zeng <oak.z...@intel.com>
> Cc: Jani Nikula <jani.nik...@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
> Cc: Andi Shyti <andi.sh...@linux.intel.com>
> Cc: Andrzej Hajda <andrzej.ha...@intel.com>
> Signed-off-by: Nirmoy Das <nirmoy....@intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_gt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c
> b/drivers/gpu/drm/i915/gt/intel_gt.c
> index 33a61046ba58..9f64d61dd5fc 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
> @@ -466,7 +466,7 @@ static int intel_gt_init_scratch(struct intel_gt *gt, 
> unsigned
> int size)
>       obj = i915_gem_object_create_lmem(i915, size,
>                                         I915_BO_ALLOC_VOLATILE |
>                                         I915_BO_ALLOC_GPU_ONLY);
> -     if (IS_ERR(obj))
> +     if (IS_ERR(obj) && !IS_METEORLAKE(i915)) /* Wa_22018444074 */
>               obj = i915_gem_object_create_stolen(i915, size);
>       if (IS_ERR(obj))
>               obj = i915_gem_object_create_internal(i915, size);
> --
> 2.39.0

Reply via email to