On 9/26/23 10:35, Boris Brezillon wrote: >>>> + __drm_gem_shmem_release_pages(shmem); >>> Make sure you drop the implicit pages_use_count ref the sgt had, this >>> way you can still tie the necessity to drop the pages to sgt != NULL in >>> drm_gem_shmem_free(). >> This will require further refcnt re-initialization when pages are >> restored if it's dropped to zero. I don't see how this will improve >> anything. > Sorry to disagree, but I do think it matters to have a clear ownership > model, and if I look at the code (drm_gem_shmem_get_pages_sgt_locked()), > the sgt clearly owns a reference to the pages it points to. It creates too much unnecessary trouble because, again, pages_use_count can't drop to zero easily. Shrinker doesn't own the refcnt and not allowed to touch it. The pages_use_count is then used by things like mmap() and etc that use get_pages(), which can be invoked for evicted GEM. I'd prefer to keep refcounting as is, don't see how to implement your suggestion. Will be happy to help with reviewing and testing patches made on top of this series ;) -- Best regards, Dmitry