[Intel-gfx] [PATCH 1/5] agp/intel: Serialise after GTT updates

Chris Wilson chris at chris-wilson.co.uk
Fri Feb 6 00:31:46 PST 2015


On Thu, Feb 05, 2015 at 04:11:00PM -0800, Jesse Barnes wrote:
> On Wed, 14 Jan 2015 11:20:55 +0000
> Chris Wilson <chris at chris-wilson.co.uk> wrote:
> 
> > diff --git a/drivers/char/agp/intel-gtt.c
> > b/drivers/char/agp/intel-gtt.c index 92aa43fa8d70..15685ca39193 100644
> > --- a/drivers/char/agp/intel-gtt.c
> > +++ b/drivers/char/agp/intel-gtt.c
> > @@ -225,7 +225,7 @@ static int i810_insert_dcache_entries(struct
> > agp_memory *mem, off_t pg_start,
> > intel_private.driver->write_entry(addr, i, type);
> >  	}
> > -	readl(intel_private.gtt+i-1);
> > +	readl(intel_private.gtt+pg_start);
> 
> Any idea why?  This one scares me...  is it that the read is being
> serviced from the WC buffer w/o being flushed?  Or is the compiler
> optimizing the last read based on the previous write?

The former. I checked the assembly to verify that the compiler wasn't
playing tricks.
-Chrier

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list