[PATCH v1 0/6] fs/proc: move page_mapcount() to fs/proc/internal.h

David Hildenbrand
2024-06-07T12:24:05Z

With all other page_mapcount() users in the tree gone, move
page_mapcount() to fs/proc/internal.h, rename it and extend the
documentation to prevent future (ab)use.

... of course, I find some issues while working on that code that I sort
first ;)

We'll now only end up calling page_mapcount()
[now folio_precise_page_mapcount()] on pages mapped via present page table
entries. Except for /proc/kpagecount, that still does questionable things,
but we'll leave that legacy interface as is for now.

Did a quick sanity check. Likely we would want some better selfestest
for /proc/$/pagemap + smaps. I'll see if I can find some time to write
some more.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jonathan Corbet <corbet@lwn.net>

David Hildenbrand (6):
fs/proc/task_mmu: indicate PM_FILE for PMD-mapped file THP
fs/proc/task_mmu: don't indicate PM_MMAP_EXCLUSIVE without PM_PRESENT
fs/proc/task_mmu: properly detect PM_MMAP_EXCLUSIVE per page of
PMD-mapped THPs
fs/proc/task_mmu: account non-present entries as "maybe shared, but no
idea how often"
fs/proc: move page_mapcount() to fs/proc/internal.h
Documentation/admin-guide/mm/pagemap.rst: drop "Using pagemap to do
something useful"

Documentation/admin-guide/mm/pagemap.rst | 21 -----
fs/proc/internal.h | 33 ++++++++
fs/proc/page.c | 21 +++--
fs/proc/task_mmu.c | 102 +++++++++++++----------
include/linux/mm.h | 27 +-----
5 files changed, 104 insertions(+), 100 deletions(-)

base-commit: 19b8422c5bd56fb5e7085995801c6543a98bda1f
--
2.45.2