Thanks, Oak > -----Original Message----- > From: Nirmoy Das <nirmoy.das@xxxxxxxxxxxxxxx> > Sent: July 4, 2023 11:31 AM > To: Zeng, Oak <oak.zeng@xxxxxxxxx>; Das, Nirmoy <nirmoy.das@xxxxxxxxx>; > intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Hajda, Andrzej <andrzej.hajda@xxxxxxxxx> > Subject: Re: [PATCH 1/2] drm/i915/gt: Do not use stolen on MTL > > 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 ? I looked some internal code, and just realized upstream code is different 😊 > > > > > > 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 for explaining. Series is Reviewed-by: Oak Zeng <oak.zeng@xxxxxxxxx> > > > Thanks, > > Nirmoy > > > > > Thanks, > > Oak > > > >> -----Original Message----- > >> From: Das, Nirmoy <nirmoy.das@xxxxxxxxx> > >> Sent: June 30, 2023 1:02 PM > >> To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > >> Cc: Das, Nirmoy <nirmoy.das@xxxxxxxxx>; Zeng, Oak <oak.zeng@xxxxxxxxx>; > Jani > >> Nikula <jani.nikula@xxxxxxxxxxxxxxx>; Joonas Lahtinen > >> <joonas.lahtinen@xxxxxxxxxxxxxxx>; Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx>; > >> Hajda, Andrzej <andrzej.hajda@xxxxxxxxx> > >> 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@xxxxxxxxx> > >> Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > >> Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > >> Cc: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx> > >> Cc: Andrzej Hajda <andrzej.hajda@xxxxxxxxx> > >> Signed-off-by: Nirmoy Das <nirmoy.das@xxxxxxxxx> > >> --- > >> 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