On Tue, Apr 19, 2011 at 4:23 PM, Arnd Bergmann arnd@arndb.de wrote:
3- fix up the unity mapping so the attribute bits match those desired by the unified memory manger. This could be done by removing pages from the unity map. It's complicated by the fact that the unity map makes use of large pages, sections and supersections to reduce tlb pressure. I don't think this is impossible if we restrict the set of contexts from which it can happen, but I'm imagining that we will also need to maintain some kind of pool of memory we've moved from cached to uncached since the process is likely to be expensive. Quite likely we will have to iterate over processes and update all their top level page tables.
Would it get simpler if we only allow entire supersections to be moved into the uncached memory allocator?
I think.. although how do you migrate it back when it isn't needed for mm/gfx buffers? I guess if it is all for large >=720p size of buffers, maybe fragmentation is less of a problem?
BR, -R