[GIT PULL] Multi-gen LRU for 5.18-rc1

Yu Zhao yuzhao at google.com
Fri Mar 25 18:00:03 PDT 2022


Hi Linus,

This is more of an option than a request for 5.18. I'm sending it to
you directly because, in my judgement, it's now as ready as it'll ever
be.

Thanks!

The following changes since commit 46f538bf2404ee9c32648deafb886f49144bfd5e:

  Merge tag 'backlight-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight (2022-03-25 14:01:23 -0700)

are available in the Git repository at:

  https://linux-mm.googlesource.com/mglru/ tags/mglru-for-5.18-rc1

for you to fetch changes up to bcf5f2a801b85f09ad691d07460fdf3fbef8404d:

  mm: multi-gen LRU: design doc (2022-03-25 15:30:50 -0600)

----------------------------------------------------------------
Multi-gen LRU for 5.18-rc1

This series was retested on top of 5.18-ed4643521e6a. All previous
comments have been addressed.

Changes since v8 [1]
  * Removed two user-hostile config options (suggested by Linus
    Torvalds).

Changes since v9 [2]
  * Resolved the conflicts with the latest folio changes.
  * Switched to spin_trylock() to move onto the next page table rather
    than spin on the current one when trying to clear the accessed
    bit on many page tables.
  * Added introductory paragraphs to the admin guide and the design
    doc (suggested by Mike Rapoport).
  * Expanded comments in get_nr_evictable() (suggested by Barry Song
    and Aneesh Kumar).
  * Expanded comments in inc_max_seq() (suggested by Barry Song).

[1] https://lkml.kernel.org/r/20220308234723.3834941-1-yuzhao@google.com
[2] https://lkml.kernel.org/r/20220309021230.721028-1-yuzhao@google.com

Signed-off-by: Yu Zhao <yuzhao at google.com>

----------------------------------------------------------------
Yu Zhao (14):
      mm: x86, arm64: add arch_has_hw_pte_young()
      mm: x86: add CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG
      mm/vmscan.c: refactor shrink_node()
      Revert "include/linux/mm_inline.h: fold __update_lru_size() into its sole caller"
      mm: multi-gen LRU: groundwork
      mm: multi-gen LRU: minimal implementation
      mm: multi-gen LRU: exploit locality in rmap
      mm: multi-gen LRU: support page table walks
      mm: multi-gen LRU: optimize multiple memcgs
      mm: multi-gen LRU: kill switch
      mm: multi-gen LRU: thrashing prevention
      mm: multi-gen LRU: debugfs interface
      mm: multi-gen LRU: admin guide
      mm: multi-gen LRU: design doc

 Documentation/admin-guide/mm/index.rst        |    1 +
 Documentation/admin-guide/mm/multigen_lru.rst |  152 ++
 Documentation/vm/index.rst                    |    1 +
 Documentation/vm/multigen_lru.rst             |  160 ++
 arch/Kconfig                                  |    9 +
 arch/arm64/include/asm/pgtable.h              |   14 +-
 arch/x86/Kconfig                              |    1 +
 arch/x86/include/asm/pgtable.h                |    9 +-
 arch/x86/mm/pgtable.c                         |    5 +-
 fs/exec.c                                     |    2 +
 fs/fuse/dev.c                                 |    3 +-
 include/linux/cgroup.h                        |   15 +-
 include/linux/memcontrol.h                    |   36 +
 include/linux/mm.h                            |    7 +
 include/linux/mm_inline.h                     |  217 +-
 include/linux/mm_types.h                      |   78 +
 include/linux/mmzone.h                        |  211 ++
 include/linux/nodemask.h                      |    1 +
 include/linux/page-flags-layout.h             |   11 +-
 include/linux/page-flags.h                    |    4 +-
 include/linux/pgtable.h                       |   17 +-
 include/linux/sched.h                         |    4 +
 include/linux/swap.h                          |    4 +
 kernel/bounds.c                               |    7 +
 kernel/cgroup/cgroup-internal.h               |    1 -
 kernel/exit.c                                 |    1 +
 kernel/fork.c                                 |    9 +
 kernel/sched/core.c                           |    1 +
 mm/Kconfig                                    |   26 +
 mm/huge_memory.c                              |    3 +-
 mm/internal.h                                 |    1 +
 mm/memcontrol.c                               |   27 +
 mm/memory.c                                   |   39 +-
 mm/mm_init.c                                  |    6 +-
 mm/mmzone.c                                   |    2 +
 mm/rmap.c                                     |    7 +
 mm/swap.c                                     |   55 +-
 mm/vmscan.c                                   | 3102 +++++++++++++++++++++++--
 mm/workingset.c                               |  119 +-
 39 files changed, 4097 insertions(+), 271 deletions(-)
 create mode 100644 Documentation/admin-guide/mm/multigen_lru.rst
 create mode 100644 Documentation/vm/multigen_lru.rst



More information about the linux-arm-kernel mailing list