From: Baolin Wang <baolin.wang@linux•alibaba.com>
To: akpm@linux-foundation•org, david@kernel•org
Cc: catalin.marinas@arm•com, will@kernel•org,
lorenzo.stoakes@oracle•com, ryan.roberts@arm•com,
Liam.Howlett@oracle•com, vbabka@suse•cz, rppt@kernel•org,
surenb@google•com, mhocko@suse•com, riel@surriel•com,
harry.yoo@oracle•com, jannh@google•com, willy@infradead•org,
baohua@kernel•org, dev.jain@arm•com, axelrasmussen@google•com,
yuanchu@google•com, weixugc@google•com, hannes@cmpxchg•org,
zhengqi.arch@bytedance•com, shakeel.butt@linux•dev,
baolin.wang@linux•alibaba.com, linux-mm@kvack•org,
linux-arm-kernel@lists•infradead.org,
linux-kernel@vger•kernel.org
Subject: [PATCH v3 0/6] support batched checking of the young flag for MGLRU
Date: Fri, 6 Mar 2026 14:43:36 +0800 [thread overview]
Message-ID: <cover.1772778858.git.baolin.wang@linux.alibaba.com> (raw)
This is a follow-up to the previous work [1], to support batched checking
of the young flag for MGLRU.
Similarly, batched checking of young flag for large folios can improve
performance during large-folio reclamation when MGLRU is enabled. I
observed noticeable performance improvements (see patch 5) on an Arm64
machine that supports contiguous PTEs. All mm-selftests are passed.
Patch 1 - 3: cleanup patches.
Patch 4: add a new generic batched PTE helper: test_and_clear_young_ptes().
Patch 5: support batched young flag checking for MGLRU.
Patch 6: implement the Arm64 arch-specific test_and_clear_young_ptes().
[1] https://lore.kernel.org/all/cover.1770645603.git.baolin.wang@linux.alibaba.com/
Changes from v2:
v2: https://lore.kernel.org/all/cover.1772185080.git.baolin.wang@linux.alibaba.com/
- Update the commit message of patch 5 (per David).
- Fix some coding style issues (per David).
- Remove 'cur_pte' variable in lru_gen_look_around() (per David).
- Move 'ptes += nr;' to the suitable place in folio_referenced_one() (per David).
- Add acked tag from David. Thanks.
Changes from v1:
v1: https://lore.kernel.org/all/cover.1771897150.git.baolin.wang@linux.alibaba.com/
- Update some commit message (per David).
- Fix some coding style issues (per David).
- Use VM_WARN_ON_ONCE_FOLIO() instead of VM_WARN_ON_FOLIO() (per Rik).
- Define a generic ptep_test_and_clear_young_notify() (per David).
- Remove redundant 'nr > 1' check in folio_referenced_one() (per David).
- Rename some variables' to make code more clear (per David).
- Add a new patch to rename some functions (per David).
- Update the young counters with the batched count for MGLRU.
- Collect reviewed tags from Rik, Barry, Alistair and David. Thanks.
Baolin Wang (6):
mm: use inline helper functions instead of ugly macros
mm: rename ptep/pmdp_clear_young_notify() to
ptep/pmdp_test_and_clear_young_notify()
mm: rmap: add a ZONE_DEVICE folio warning in folio_referenced()
mm: add a batched helper to clear the young flag for large folios
mm: support batched checking of the young flag for MGLRU
arm64: mm: implement the architecture-specific
test_and_clear_young_ptes()
arch/arm64/include/asm/pgtable.h | 18 +++++++----
include/linux/mmu_notifier.h | 54 --------------------------------
include/linux/mmzone.h | 5 +--
include/linux/pgtable.h | 37 ++++++++++++++++++++++
mm/internal.h | 52 ++++++++++++++++++++++++++++++
mm/rmap.c | 29 ++++++++---------
mm/vmscan.c | 45 +++++++++++++++++++-------
7 files changed, 152 insertions(+), 88 deletions(-)
--
2.47.3
next reply other threads:[~2026-03-06 6:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-06 6:43 Baolin Wang [this message]
2026-03-06 6:43 ` [PATCH v3 1/6] mm: use inline helper functions instead of ugly macros Baolin Wang
2026-03-06 6:43 ` [PATCH v3 2/6] mm: rename ptep/pmdp_clear_young_notify() to ptep/pmdp_test_and_clear_young_notify() Baolin Wang
2026-03-06 6:43 ` [PATCH v3 3/6] mm: rmap: add a ZONE_DEVICE folio warning in folio_referenced() Baolin Wang
2026-03-06 6:43 ` [PATCH v3 4/6] mm: add a batched helper to clear the young flag for large folios Baolin Wang
2026-03-06 6:43 ` [PATCH v3 5/6] mm: support batched checking of the young flag for MGLRU Baolin Wang
2026-03-06 14:44 ` David Hildenbrand (Arm)
2026-03-06 6:43 ` [PATCH v3 6/6] arm64: mm: implement the architecture-specific test_and_clear_young_ptes() Baolin Wang
2026-03-06 14:47 ` David Hildenbrand (Arm)
2026-03-07 1:28 ` Baolin Wang
2026-03-09 14:39 ` David Hildenbrand (Arm)
2026-03-10 2:51 ` Baolin Wang
2026-03-09 14:40 ` David Hildenbrand (Arm)
2026-03-06 23:20 ` [PATCH v3 0/6] support batched checking of the young flag for MGLRU Andrew Morton
2026-03-07 1:29 ` Baolin Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1772778858.git.baolin.wang@linux.alibaba.com \
--to=baolin.wang@linux$(echo .)alibaba.com \
--cc=Liam.Howlett@oracle$(echo .)com \
--cc=akpm@linux-foundation$(echo .)org \
--cc=axelrasmussen@google$(echo .)com \
--cc=baohua@kernel$(echo .)org \
--cc=catalin.marinas@arm$(echo .)com \
--cc=david@kernel$(echo .)org \
--cc=dev.jain@arm$(echo .)com \
--cc=hannes@cmpxchg$(echo .)org \
--cc=harry.yoo@oracle$(echo .)com \
--cc=jannh@google$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-mm@kvack$(echo .)org \
--cc=lorenzo.stoakes@oracle$(echo .)com \
--cc=mhocko@suse$(echo .)com \
--cc=riel@surriel$(echo .)com \
--cc=rppt@kernel$(echo .)org \
--cc=ryan.roberts@arm$(echo .)com \
--cc=shakeel.butt@linux$(echo .)dev \
--cc=surenb@google$(echo .)com \
--cc=vbabka@suse$(echo .)cz \
--cc=weixugc@google$(echo .)com \
--cc=will@kernel$(echo .)org \
--cc=willy@infradead$(echo .)org \
--cc=yuanchu@google$(echo .)com \
--cc=zhengqi.arch@bytedance$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox