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

Message ID ebc0987e-beff-8bfb-9283-234c2cbd17c5@google.com
Headers
Series mempolicy: cleanups leading to NUMA mpol without vma |

Message

Hugh Dickins Oct. 3, 2023, 9:12 a.m. UTC
  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@google.com/
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