* [to-be-updated] mm-mglru-extract-lruvec_populated_min_seq-helper.patch removed from -mm tree
@ 2026-11-13 19:41 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2026-11-13 19:41 UTC (permalink / raw)
To: mm-commits, kasong, akpm
The quilt patch titled
Subject: mm/mglru: extract lruvec_populated_min_seq() helper
has been removed from the -mm tree. Its filename was
mm-mglru-extract-lruvec_populated_min_seq-helper.patch
This patch was dropped because an updated version will be issued
------------------------------------------------------
From: Kairui Song <kasong@tencent.com>
Subject: mm/mglru: extract lruvec_populated_min_seq() helper
Date: Thu, 12 Nov 2026 07:25:49 +0800
The search for the oldest populated generation of a type, previously
embedded in try_to_inc_min_seq(), is extracted into the new
lruvec_populated_min_seq() helper. It returns the oldest populated seq
of a given type, bounded by the given max_seq so the search never goes
beyond it.
No functional change.
Link: https://lore.kernel.org/20261111232603.9934-3-baohua@kernel.org
Signed-off-by: Kairui Song <kasong@tencent.com>
Signed-off-by: Barry Song (Xiaomi) <baohua@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Kunwu Chan <kunwu.chan@gmail.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Baoquan He <baoquan.he@linux.dev>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: <hui.zhu@linux.dev>
Cc: Liam R. Howlett <liam@infradead.org>
Cc: wang lian <lianux.mm@gmail.com>
Cc: <liuxiang.277@bytedance.com>
Cc: <lyugaofei@xiaomi.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Qi Zheng <qi.zheng@linux.dev>
Cc: Ridong Chen <ridong.chen@linux.dev>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Kairui Song <ryncsn@gmail.com>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: wangzicheng <wangzicheng@honor.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Yuanchu Xie <yuanchu@google.com>
Cc: Bo Zhang <zhangbo56@xiaomi.com>
Cc: Hui Zhu <zhuhui@kylinos.cn>
Cc: Siddharth Chintamaneni <sidchintamaneni@gmail.com>
Cc: Kunwu Chan <chentao@kylinos.cn>
---
mm/vmscan.c | 43 +++++++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 14 deletions(-)
--- a/mm/vmscan.c~mm-mglru-extract-lruvec_populated_min_seq-helper
+++ a/mm/vmscan.c
@@ -3992,30 +3992,45 @@ done:
return true;
}
+/* Similar to lruvec_evictable_size, return the oldest populated seq of the type */
+static unsigned long lruvec_populated_min_seq(struct lruvec *lruvec, int type,
+ unsigned long max_seq)
+{
+ int gen, zone;
+ unsigned long min_seq;
+ struct lru_gen_folio *lrugen = &lruvec->lrugen;
+
+ lockdep_assert_held(&lruvec->lru_lock);
+
+ min_seq = READ_ONCE(lrugen->min_seq[type]);
+ while (min_seq <= max_seq) {
+ gen = lru_gen_from_seq(min_seq);
+ for (zone = 0; zone < MAX_NR_ZONES; zone++) {
+ if (!list_empty(&lrugen->folios[gen][type][zone]))
+ return min_seq;
+ }
+ min_seq++;
+ }
+
+ return max_seq;
+}
+
static void try_to_inc_min_seq(struct lruvec *lruvec, int swappiness)
{
- int gen, type, zone;
+ int type;
bool seq_inc_flag = false;
struct lru_gen_folio *lrugen = &lruvec->lrugen;
DEFINE_MIN_SEQ(lruvec);
+ unsigned long seq;
VM_WARN_ON_ONCE(!seq_is_valid(lruvec));
- /* find the oldest populated generation */
+ /* Requires at least MIN_NR_GENS gens for basic functionality */
+ seq = lrugen->max_seq - MIN_NR_GENS;
for_each_evictable_type(type, swappiness) {
- while (min_seq[type] + MIN_NR_GENS <= lrugen->max_seq) {
- gen = lru_gen_from_seq(min_seq[type]);
-
- for (zone = 0; zone < MAX_NR_ZONES; zone++) {
- if (!list_empty(&lrugen->folios[gen][type][zone]))
- goto next;
- }
-
- min_seq[type]++;
+ min_seq[type] = lruvec_populated_min_seq(lruvec, type, seq + 1);
+ if (min_seq[type] > lrugen->min_seq[type])
seq_inc_flag = true;
- }
-next:
- ;
}
/*
_
Patches currently in -mm which might be from kasong@tencent.com are
mm-mglru-reclaim-from-the-oldest-populated-gen.patch
mm-mglru-lift-the-forced-protection-of-reclaimer.patch
mm-mglru-skip-zones-above-reclaim_idx-instead-of-rotating-them.patch
mm-mglru-return-for-unavailable-anon-reclaim-earlier.patch
mm-mglru-balance-anon-and-file-scan-budget-by-refault-rate.patch
mm-mglru-lift-youngest-gen-protection-for-higher-priority.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-13 19:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 19:41 [to-be-updated] mm-mglru-extract-lruvec_populated_min_seq-helper.patch removed from -mm tree Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.