> -----Original Message----- > From: Cheng, Michael <michael.cheng@xxxxxxxxx> > Sent: Friday, January 28, 2022 2:10 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Cheng, Michael <michael.cheng@xxxxxxxxx>; Bowman, Casey G > <casey.g.bowman@xxxxxxxxx>; De Marchi, Lucas > <lucas.demarchi@xxxxxxxxx>; Boyer, Wayne <wayne.boyer@xxxxxxxxx>; > ville.syrjala@xxxxxxxxxxxxxxx; Kuoppala, Mika <mika.kuoppala@xxxxxxxxx>; > Auld, Matthew <matthew.auld@xxxxxxxxx> > Subject: [PATCH v2 4/4] drm/i915/: Re-work clflush_write32 > > Use drm_clflush_virt_range instead of clflushopt and remove the memory > barrier, since drm_clflush_virt_range takes care of that. > > Signed-off-by: Michael Cheng <michael.cheng@xxxxxxxxx> Reviewed-by: Casey Bowman <casey.g.bowman@xxxxxxxxx> > --- > drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > index 498b458fd784..0854276ff7ba 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > @@ -1332,10 +1332,8 @@ static void *reloc_vaddr(struct i915_vma *vma, > static void clflush_write32(u32 *addr, u32 value, unsigned int flushes) { > if (unlikely(flushes & (CLFLUSH_BEFORE | CLFLUSH_AFTER))) { > - if (flushes & CLFLUSH_BEFORE) { > - clflushopt(addr); > - mb(); > - } > + if (flushes & CLFLUSH_BEFORE) > + drm_clflush_virt_range(addr, sizeof(addr)); > > *addr = value; > > @@ -1347,7 +1345,7 @@ static void clflush_write32(u32 *addr, u32 value, > unsigned int flushes) > * to ensure ordering of clflush wrt to the system. > */ > if (flushes & CLFLUSH_AFTER) > - clflushopt(addr); > + drm_clflush_virt_range(addr, sizeof(addr)); > } else > *addr = value; > } > -- > 2.25.1