[PATCH -next v3 00/19] mm: convert page cpupid functions to folios

From: Kefeng Wang
Date: Wed Oct 18 2023 - 10:09:08 EST


The cpupid(or access time) used by numa balancing is stored in flags
or _last_cpupid(if LAST_CPUPID_NOT_IN_PAGE_FLAGS) of page, this is to
convert page cpupid to folio cpupid, a new _last_cpupid is added into
folio, which make us to use folio->_last_cpupid directly, and the
page cpupid functions are converted to folio ones.

page_cpupid_last() -> folio_last_cpupid()
xchg_page_access_time() -> folio_xchg_access_time()
page_cpupid_xchg_last() -> folio_xchg_last_cpupid()

v3:
- fix finish_mkwrite_fault built warning reported-by lkp
- address the wp_page_reuse() comment of Matthew, also update
changelog of change_pte_range() and wp_page_reuse() a bit
- rebased on next-20231018

v2:
- add virtual into folio too
- re-write and split patches to make them easier to review
- rename to folio_last_cpupid/folio_xchg_last_cpupid/folio_xchg_access_time
- rebased on next-20231013

v1:
- drop inappropriate page_cpupid_reset_last conversion from RFC
- rebased on next-20231009

Kefeng Wang (19):
mm_types: add virtual and _last_cpupid into struct folio
mm: add folio_last_cpupid()
mm: memory: use folio_last_cpupid() in do_numa_page()
mm: huge_memory: use folio_last_cpupid() in do_huge_pmd_numa_page()
mm: huge_memory: use folio_last_cpupid() in __split_huge_page_tail()
mm: remove page_cpupid_last()
mm: add folio_xchg_access_time()
sched/fair: use folio_xchg_access_time() in numa_hint_fault_latency()
mm: mprotect: use a folio in change_pte_range()
mm: huge_memory: use a folio in change_huge_pmd()
mm: remove xchg_page_access_time()
mm: add folio_xchg_last_cpupid()
sched/fair: use folio_xchg_last_cpupid() in
should_numa_migrate_memory()
mm: migrate: use folio_xchg_last_cpupid() in folio_migrate_flags()
mm: huge_memory: use folio_xchg_last_cpupid() in
__split_huge_page_tail()
mm: make finish_mkwrite_fault() static
mm: convert wp_page_reuse() and finish_mkwrite_fault() to take a folio
mm: use folio_xchg_last_cpupid() in wp_page_reuse()
mm: remove page_cpupid_xchg_last()

include/linux/mm.h | 30 +++++++++++++++---------------
include/linux/mm_types.h | 22 ++++++++++++++++++----
kernel/sched/fair.c | 4 ++--
mm/huge_memory.c | 17 +++++++++--------
mm/memory.c | 38 ++++++++++++++++++++------------------
mm/migrate.c | 8 ++++----
mm/mmzone.c | 6 +++---
mm/mprotect.c | 16 +++++++++-------
8 files changed, 80 insertions(+), 61 deletions(-)

--
2.27.0