Re: [PATCH] x86: create array based interface to change page attribute

Jesse Barnes
2008-04-08T14:29:38Z

On Monday, April 07, 2008 11:21 pm Thomas Hellström wrote:
> Jesse Barnes wrote:
> > On Monday, April 07, 2008 1:46 pm Thomas Hellström wrote:
> >>> Why would we need to flush at all at unbind-read-bind time? We should
> >>> be able to leave pages in the WC state even when we unbind them, then
> >>> when we need to bind them back into the GTT they'll be ready, but maybe
> >>> I'm misunderstanding you here...
> >>
> >> We want to make the user-space mapping cache-coherent after unbind
> >> during read, to have any serious read-speed, and the linear kernel map
> >> has to follow, unless it's non-present. Even if it's non present, we
> >> need to flush whatever was written through the user-space mapping from
> >> the cache when rebinding. Having the user-space mapping read-only when
> >> possible will help avoid this.
> >
> > Ah, you actually want to *read* from memory? Yeah that would be really
> > slow if we left it UC or WC. But I thought that was really only
> > necessary for relocation, and keithp dealt with that with the "presumed
> > offset" stuff? Are you seeing other cases where we need to read back
> > frequently?
>
> While keithp's "presumed offset" is really good stuff, we should never
> need to read from device memory during relocations, I think. I was
> thinking of EXA and OpenGL software fallback cases, "download from
> screen" and "readpixels" types of operation, as well as
> pixel-buffer-object map in read mode.

Hm, yeah, anholt was telling me about some of these cases offline too. This
is what makes things really difficult...

Jesse