Hi, On 9/9/21 4:56 PM, Matthew Auld wrote:
Hi Christian, We are looking into using shmem as a ttm_tt backend in i915 for cached system memory objects. We would also like to make such objects visible to the i915-gem shrinker, so that they may be swapped out or discarded when under memory pressure. One idea for handling this is roughly something like: - Add a new TTM_PAGE_FLAG_SHMEM flag, or similar. - Skip the ttm_pages_allocated accounting on such objects, similar to how FLAG_SG is already handled. - Skip all the page->mapping and page->index related bits, like in tt_add_mapping, since it looks like these are set and used by shmem. Not sure what functionally this might break, but looks like it's maybe only driver specific?
IIrc the page->mapping and index is needed when doing dirty-tracking using mkwrite and by vmwgfx at some point when doing fb_defio on top of TTM buffers. I don't think vmwgfx does that anymore, but it still does dirty-tracking.
/Thomas