Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <baoquan.he@linux.dev>
To: Barry Song <baohua@kernel.org>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org,
	axelrasmussen@google.com, baolin.wang@linux.alibaba.com,
	chenridong@xiaomi.com, david@kernel.org, hannes@cmpxchg.org,
	kasong@tencent.com, lianux.mm@gmail.com,
	linux-kernel@vger.kernel.org, ljs@kernel.org,
	lyugaofei@xiaomi.com, mhocko@kernel.org, qi.zheng@linux.dev,
	shakeel.butt@linux.dev, stevensd@chromium.org,
	wangzicheng@honor.com, weixugc@google.com, yuanchu@google.com,
	zhangbo56@xiaomi.com
Subject: Re: [PATCH 3/6] mm/mglru: enhance cold/hot inversion handling in inc_min_seq()
Date: Thu, 27 Aug 2026 10:14:19 +0800	[thread overview]
Message-ID: <ao-dewgE9XAfP0rU@MiWiFi-R3L-srv> (raw)
In-Reply-To: <CAGsJ_4zoXvyXG6-qAH+=nv6V92w_U_tk78YAPKMihRniqvTe8A@mail.gmail.com>

On 08/27/26 at 09:24am, Barry Song wrote:
> On Thu, Aug 27, 2026 at 8:46 AM Baoquan He <baoquan.he@linux.dev> wrote:
> >
> > On 08/27/26 at 05:43am, Barry Song wrote:
> > > On Wed, Aug 26, 2026 at 4:56 PM Baoquan He <baoquan.he@linux.dev> wrote:
> > > >
> > > > On 08/21/26 at 06:25pm, Barry Song (Xiaomi) wrote:
> > > > > During aging, a folio's generation may already have been updated by
> > > > > folio_update_gen(), even though it has not yet been moved to the
> > > > > corresponding generation list. Such folios are hotter than those
> > > > > already in that generation.
> > > > >
> > > > > It makes sense for inc_min_seq() to increment the generation of
> > > > > folios that were never promoted during aging and move them to the
> > > > > tail of the new oldest generation. However, folios that were already
> > > > > promoted should instead be moved to the head of their updated
> > > > > generation, just as sort_folio() does in scan_folios().
> > > >
> > > > While sort_folio() move protected folio to the head of next gen too.
> > > > It only moves ineligible folios to the tail of next gen.
> > > >
> > >
> > > Hi Baoquan,
> > >
> > > Thanks for the review! I’m not quite sure I understand what you mean :-)
> > > Could you please clarify what you’re suggesting?
> >
> > Sorry for the confusion, Barry. I meant this is a good one, and
> > sort_folio() has the similar issue in which the protected folios are
> > moved to the head, wondering if that need be adjusted too. One consistent
> > rule for both is better.
> 
> I think it might be fine for sort_folio() to move protected folios to the
> head, since those folios have either been accessed multiple times or have
> reached a tier higher than tier_idx. They are sort of hot in theory, right?
> 
> if (tier > tier_idx || refs + workingset == BIT(LRU_REFS_WIDTH) + 1)
> 
> But for inc_min_seq(), it is just catching up to make sure the newest
> generation doesn't overlap with the oldest generation. Those non-promoted
> folios themselves aren't hot , so I feel these are actually different?

I got your point, sort_folio() considers the hottness, inc_min_seq()
doesn't. I agree with you now. Thanks for the explanation.

BUT no matter what it is, protected folios, lazily promoted folios,
and no matter where it is, put in head of next gen or tail of next gen,
their refs are cleared by folio_inc_gen(). Then in sort_folio(), they
are all tier 0 of the oldest gen and must be reclaimed.

So here, I think differentiating them and moving them into head or tail
doesn't make sense, the thing is whether if we need do something to
retain refs of folios when gen_increased. At least, for lazily promoted
folios, it should not be put in the tail of next gen and refs cleared.
What do you think?

Thanks
Baoquan


  reply	other threads:[~2026-08-27  2:14 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-21 10:25 [PATCH 0/6] mm/mglru: speed up inc_min_seq() and fix cold/hot inversions Barry Song (Xiaomi)
2026-08-21 10:25 ` [PATCH 1/6] mm/mglru: batch update lrugen->nr_pages in inc_min_seq() Barry Song (Xiaomi)
2026-08-22  1:42   ` Lian Wang (ProcessMission)
2026-08-25 21:38     ` Barry Song
2026-08-26  8:23   ` Baoquan He
2026-08-27  3:20   ` Kairui Song
2026-08-27 11:21     ` Barry Song
2026-08-27 11:30       ` Kairui Song
2026-08-21 10:25 ` [PATCH 2/6] mm/mglru: batch update lrugen->protected " Barry Song (Xiaomi)
2026-08-26  9:10   ` Baoquan He
2026-08-27  5:09     ` Barry Song
2026-08-27 12:14       ` Xueyuan Chen
2026-08-21 10:25 ` [PATCH 3/6] mm/mglru: enhance cold/hot inversion handling " Barry Song (Xiaomi)
2026-08-26  8:56   ` Baoquan He
2026-08-26 21:43     ` Barry Song
2026-08-27  0:46       ` Baoquan He
2026-08-27  1:24         ` Barry Song
2026-08-27  2:14           ` Baoquan He [this message]
2026-08-27  2:19             ` Baoquan He
2026-08-27  4:30             ` Kairui Song
2026-08-27  6:13               ` Baoquan He
2026-08-27  4:37   ` Kairui Song
2026-08-21 10:25 ` [PATCH 4/6] mm/mglru: exclude folios promoted by aging from protected " Barry Song (Xiaomi)
2026-08-26  8:57   ` Baoquan He
2026-08-21 10:25 ` [PATCH 5/6] mm/mglru: move folios from oldest gen to second-oldest gen from head to tail Barry Song (Xiaomi)
2026-08-22  5:45   ` Kairui Song
2026-08-25 21:32     ` Barry Song
2026-08-26  9:06   ` Baoquan He
2026-08-21 10:25 ` [PATCH 6/6] mm/mglru: batch move folios to the second-oldest gen's LRU Barry Song (Xiaomi)
2026-08-26  9:34   ` Baoquan He
2026-08-27  3:54 ` [PATCH 0/6] mm/mglru: speed up inc_min_seq() and fix cold/hot inversions Xueyuan Chen

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=ao-dewgE9XAfP0rU@MiWiFi-R3L-srv \
    --to=baoquan.he@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=axelrasmussen@google.com \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=chenridong@xiaomi.com \
    --cc=david@kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=kasong@tencent.com \
    --cc=lianux.mm@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=lyugaofei@xiaomi.com \
    --cc=mhocko@kernel.org \
    --cc=qi.zheng@linux.dev \
    --cc=shakeel.butt@linux.dev \
    --cc=stevensd@chromium.org \
    --cc=wangzicheng@honor.com \
    --cc=weixugc@google.com \
    --cc=yuanchu@google.com \
    --cc=zhangbo56@xiaomi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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