-----Original Message-----
From: Sripada, Radhakrishna <[email protected]> 
Sent: Friday, November 3, 2023 1:02 PM
To: Cavitt, Jonathan <[email protected]>; 
[email protected]
Cc: Gupta, saurabhg <[email protected]>; Cavitt, Jonathan 
<[email protected]>; [email protected]
Subject: RE: [Intel-gfx] [PATCH] drm/i915/gt: Temporarily disable CPU caching 
into DMA for MTL
> 
> Hi Jonathan,
> 
> > -----Original Message-----
> > From: Intel-gfx <[email protected]> On Behalf Of 
> > Jonathan
> > Cavitt
> > Sent: Thursday, November 2, 2023 10:59 AM
> > To: [email protected]
> > Cc: Gupta, saurabhg <[email protected]>; Cavitt, Jonathan
> > <[email protected]>; [email protected]
> > Subject: [Intel-gfx] [PATCH] drm/i915/gt: Temporarily disable CPU caching 
> > into
> > DMA for MTL
> > 
> > FIXME: It is suspected that some Address Translation Service (ATS)
> > issue on IOMMU is causing CAT errors to occur on some MTL workloads.
> > Applying a write barrier to the ppgtt set entry functions appeared
> > to have no effect, so we must temporarily use I915_MAP_WC in the
> > map_pt_dma class of functions on MTL until a proper ATS solution is
> > found.
> > 
> What is the performance impact here? Are we disabling caching only
> for the pte changes/scratch pages or does it extend beyond?


I don't actually know what map_pt_dma is used for, but if the name is
indicative of its purpose, it should only impact mappings into the dma
page table.
As for the performance impact, I don't imagine it'll be much.  Maybe
a single-digit percentage slowdown?  It might actually improve
performance if we're avoiding enough cache misses, but the true
performance impact would have to be measured empirically.
-Jonathan Cavitt


> 
> Regards,
> Radhakrishna(RK) Sripada 
> > Signed-off-by: Jonathan Cavitt <[email protected]>
> > CC: Chris Wilson <[email protected]>
> > ---
> >  drivers/gpu/drm/i915/gt/intel_gtt.c | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.c
> > b/drivers/gpu/drm/i915/gt/intel_gtt.c
> > index 4fbed27ef0ecc..21719563a602a 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_gtt.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_gtt.c
> > @@ -95,6 +95,16 @@ int map_pt_dma(struct i915_address_space *vm, struct
> > drm_i915_gem_object *obj)
> >     void *vaddr;
> > 
> >     type = intel_gt_coherent_map_type(vm->gt, obj, true);
> > +   /*
> > +    * FIXME: It is suspected that some Address Translation Service (ATS)
> > +    * issue on IOMMU is causing CAT errors to occur on some MTL
> > workloads.
> > +    * Applying a write barrier to the ppgtt set entry functions appeared
> > +    * to have no effect, so we must temporarily use I915_MAP_WC here on
> > +    * MTL until a proper ATS solution is found.
> > +    */
> > +   if (IS_METEORLAKE(vm->i915))
> > +           type = I915_MAP_WC;
> > +
> >     vaddr = i915_gem_object_pin_map_unlocked(obj, type);
> >     if (IS_ERR(vaddr))
> >             return PTR_ERR(vaddr);
> > @@ -109,6 +119,16 @@ int map_pt_dma_locked(struct i915_address_space
> > *vm, struct drm_i915_gem_object
> >     void *vaddr;
> > 
> >     type = intel_gt_coherent_map_type(vm->gt, obj, true);
> > +   /*
> > +    * FIXME: It is suspected that some Address Translation Service (ATS)
> > +    * issue on IOMMU is causing CAT errors to occur on some MTL
> > workloads.
> > +    * Applying a write barrier to the ppgtt set entry functions appeared
> > +    * to have no effect, so we must temporarily use I915_MAP_WC here on
> > +    * MTL until a proper ATS solution is found.
> > +    */
> > +   if (IS_METEORLAKE(vm->i915))
> > +           type = I915_MAP_WC;
> > +
> >     vaddr = i915_gem_object_pin_map(obj, type);
> >     if (IS_ERR(vaddr))
> >             return PTR_ERR(vaddr);
> > --
> > 2.25.1
> 
> 

Reply via email to