radeon, apertures & memory mapping
Benjamin Herrenschmidt
benh at kernel.crashing.org
Sun Mar 13 17:02:18 PST 2005
On Mon, 2005-03-14 at 02:39 +0200, Ville Syrjälä wrote:
> On Sun, Mar 13, 2005 at 07:25:15PM -0500, Jon Smirl wrote:
> > On Mon, 14 Mar 2005 10:48:19 +1100, Benjamin Herrenschmidt
> > <benh at kernel.crashing.org> wrote:
> > >
> > > > > That shouldn't matter the page brought in would be for a speculative
> > > > > read and never accessed. It should just fall out of the cache and not
> > > > > be written back. There is only one cachable mapping. In this model
> > > > > writes are always followed by a flush before telling the GPU to access
> > > > > the memory that has just been written.
> > > >
> > > > What about this scenario?
> > > >
> > > > Speculative read -> AGP master writes new data -> CPU has invalid data in
> > > > cache :(
> > >
> >
> > You need to reverse the cache flush process if you are going to read
> > data written by the GPU.
> >
> > 1) Make sure GPU is finished writing
> > 2) flush your cache
> > 3) read AGP memory like normal RAM.
>
> Oh right. The CPU shouldn't write back the cached data since it hasn't
> changed.
>
> I think you'd also need the GPU to issue an AGP flush command between
> steps 1 and 2.
Not exactly, it could wait before 3) in fact. Step 2 will just
"invalidate" the cache.
Ben.
More information about the xorg
mailing list