[Intel-gfx] [PATCH 1/2] drm/i915/gt: Do not use stolen on MTL

Nirmoy Das nirmoy.das at linux.intel.com
Tue Jul 4 15:31:06 UTC 2023


Hi Oak,

On 7/4/2023 5:01 PM, Zeng, Oak wrote:
> 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:
Thanks for checking all the places.
>
> 1) intel_dpt_create: I don't know what is dpt. Should we also consider this one? Maybe we never read from cpu?
This expects i915_ggtt_has_aperture() which MTL doesn't have.
> 2) create_ring_vma: I think cpu only write ring buffer but never read it. So should be okay.
Same as above.
> 3) vlv_rc6_init
This  seems to be only for IS_VALLEYVIEW().
> 4) there are a few places calling i915_gem_object_create_stolen_for_preallocated. I think this is also stolen memory?

Where is this from, do you mean I915_BO_PREALLOC ?


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

GTT pages only seems to be written.


Thanks,

Nirmoy

>
> Thanks,
> Oak
>
>> -----Original Message-----
>> From: Das, Nirmoy <nirmoy.das at intel.com>
>> Sent: June 30, 2023 1:02 PM
>> To: intel-gfx at lists.freedesktop.org
>> Cc: Das, Nirmoy <nirmoy.das at intel.com>; Zeng, Oak <oak.zeng at intel.com>; Jani
>> Nikula <jani.nikula at linux.intel.com>; Joonas Lahtinen
>> <joonas.lahtinen at linux.intel.com>; Andi Shyti <andi.shyti at linux.intel.com>;
>> Hajda, Andrzej <andrzej.hajda at 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.zeng at intel.com>
>> Cc: Jani Nikula <jani.nikula at linux.intel.com>
>> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
>> Cc: Andi Shyti <andi.shyti at linux.intel.com>
>> Cc: Andrzej Hajda <andrzej.hajda at intel.com>
>> Signed-off-by: Nirmoy Das <nirmoy.das at 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


More information about the Intel-gfx mailing list