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

Thomas Hellström
2008-04-08T06:22:10Z

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.

/Thomas