[PATCH v2 00/12] mempolicy: cleanups leading to NUMA mpol without vma

From: Hugh Dickins
Date: Tue Oct 03 2023 - 05:12:51 EST


Here is v2 of a series of mempolicy patches, this version based on
mm-everything-2023-10-02-21-43, applicable also to next-20231003:
mostly cleanups in mm/mempolicy.c, but finally removing the pseudo-vma
from shmem folio allocation, and removing the mmap_lock around folio
migration for mbind and migrate_pages syscalls.

This replaces the "mempolicy: cleanups leading to NUMA mpol without vma"
https://lore.kernel.org/linux-mm/2d872cef-7787-a7ca-10e-9d45a64c80b4@xxxxxxxxxx/
series of 12 based on 6.6-rc3 and posted on 2023-09-25.

01/12 hugetlbfs: drop shared NUMA mempolicy pretence
v2: add reviewed-by Matthew
hugetlb.h include pagemap.h for filemap_lock_folio()
02/12 kernfs: drop shared NUMA mempolicy hooks
v2: add reviewed-by Matthew
03/12 mempolicy: fix migrate_pages(2) syscall return
v2: add reviewed-by Matthew
replace Yang Shi's qp->has_unmovable by qp->nr_failed
remove ptl,addr,end to queue_folios_pmd() per Huang,Ying
reword comments above queue_folios_pte_range()
fix incorrect migrate_folio_add()ing per Huang,Ying
which also fixes qp->nr_failed as count of folios
04/12 mempolicy trivia: delete those ancient pr_debug()s
v2: add reviewed-by Matthew
05/12 mempolicy trivia: slightly more consistent naming
v2: add reviewed-by Matthew
06/12 mempolicy trivia: use pgoff_t in shared mempolicy tree
v2: declare struct shared_policy (the root) before struct sp_node
reformat sp_lookup, mpol_shared_policy_lookup decls per Matthew
07/12 mempolicy: mpol_shared_policy_init() without pseudo-vma
v2: sn,npol instead of n,new (but no optimization) per Matthew
08/12 mempolicy: remove confusing MPOL_MF_LAZY dead code
v2: add reviewed-by Matthew
09/12 mm: add page_rmappable_folio() wrapper
v2: move page_rmappable_folio() to mm/internal.h per Matthew
10/12 mempolicy: alloc_pages_mpol() for NUMA policy without vma
v2: adjust to fit on top of earlier mm-unstable mods
11/12 mempolicy: mmap_lock is not needed while migrating folios
v2: remove HugeTLBfs special casing of src->index
12/12 mempolicy: migration attempt to match interleave nodes
v2: remove HugeTLBfs special casing of page->index

fs/hugetlbfs/inode.c | 41 +-
fs/kernfs/file.c | 49 --
fs/proc/task_mmu.c | 5 +-
include/linux/gfp.h | 10 +-
include/linux/hugetlb.h | 12 +-
include/linux/mempolicy.h | 44 +-
include/linux/mm.h | 2 +-
include/uapi/linux/mempolicy.h | 2 +-
ipc/shm.c | 21 +-
mm/hugetlb.c | 38 +-
mm/internal.h | 9 +
mm/mempolicy.c | 988 ++++++++++++++++-------------------
mm/page_alloc.c | 8 +-
mm/shmem.c | 92 ++--
mm/swap.h | 9 +-
mm/swap_state.c | 83 +--
16 files changed, 630 insertions(+), 783 deletions(-)

Hugh