On Thu, 10 Sep 2020, Matthew Wilcox (Oracle) wrote: > This patch series started out as part of the THP patch set, but it has > some nice effects along the way and it seems worth splitting it out and > submitting separately. > > Currently find_get_entry() and find_lock_entry() return the page > corresponding to the requested index, but the first thing most callers do > is find the head page, which we just threw away. As part of auditing > all the callers, I found some misuses of the APIs and some plain > inefficiencies that I've fixed. > > The diffstat is unflattering, but I added more kernel-doc and a new wrapper. > > v2: > - Rework how shmem_getpage_gfp() handles getting a head page back from > find_lock_entry() > - Renamed find_get_swap_page() to find_get_incore_page() > - Make sure find_get_incore_page() doesn't return a head page > - Fix the missing include of linux/shmem_fs.h > - Move find_get_entry and find_lock_entry prototypes to mm/internal.h > - Rename thp_valid_index() to thp_contains() > - Fix thp_contains() for hugetlbfs and swapcache > - Add find_lock_head() wrapper around pagecache_get_page() > > Matthew Wilcox (Oracle) (8): > mm: Factor find_get_incore_page out of mincore_page > mm: Use find_get_incore_page in memcontrol > mm: Optimise madvise WILLNEED > proc: Optimise smaps for shmem entries > i915: Use find_lock_page instead of find_lock_entry > mm: Convert find_get_entry to return the head page > mm/shmem: Return head page from find_lock_entry > mm: Add find_lock_head > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 4 +-- > fs/proc/task_mmu.c | 8 +---- > include/linux/pagemap.h | 43 +++++++++++++++++----- > include/linux/swap.h | 7 ++++ > mm/filemap.c | 44 +++++++++++------------ > mm/internal.h | 3 ++ > mm/madvise.c | 21 ++++++----- > mm/memcontrol.c | 24 ++----------- > mm/mincore.c | 28 ++------------- > mm/shmem.c | 20 +++++------ > mm/swap_state.c | 32 +++++++++++++++++ > 11 files changed, 127 insertions(+), 107 deletions(-) > > -- > 2.28.0 I was testing mmotm today (plus the shmem.c and swap_state.c fixes that you posted, but I did not try the madvise.c one) - my usual tmpfs swapping loads (plus hyperactive khugepaged to maximize the THPs). It behaved well, no problems found. But I probably won't get to try your series of 12 for a few days. Hugh _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx