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 <[email protected]>
Sent: June 30, 2023 1:02 PM
To: [email protected]
Cc: Das, Nirmoy <[email protected]>; Zeng, Oak <[email protected]>; Jani
Nikula <[email protected]>; Joonas Lahtinen
<[email protected]>; Andi Shyti <[email protected]>;
Hajda, Andrzej <[email protected]>
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 <[email protected]>
Cc: Jani Nikula <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Cc: Andi Shyti <[email protected]>
Cc: Andrzej Hajda <[email protected]>
Signed-off-by: Nirmoy Das <[email protected]>
---
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