[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251204090534.22909-1-ioworker0@gmail.com>
Date: Thu, 4 Dec 2025 17:05:34 +0800
From: Lance Yang <ioworker0@...il.com>
To: david@...nel.org
Cc: akpm@...ux-foundation.org,
axelrasmussen@...gle.com,
chenridong@...wei.com,
chenridong@...weicloud.com,
hannes@...xchg.org,
jaewon31.kim@...sung.com,
linux-kernel@...r.kernel.org,
linux-mm@...ck.org,
lorenzo.stoakes@...cle.com,
lujialin4@...wei.com,
mhocko@...nel.org,
shakeel.butt@...ux.dev,
weixugc@...gle.com,
yuanchu@...gle.com,
yuzhao@...gle.com,
zhengqi.arch@...edance.com,
Lance Yang <lance.yang@...ux.dev>
Subject: Re: [PATCH -next] mm: vmscan: correct nr_requested tracing in
From: Lance Yang <lance.yang@...ux.dev>
On Wed, 3 Dec 2025 12:33:07 +0100, David Hildenbrand (Red Hat) wrote:
> On 12/3/25 10:40, Chen Ridong wrote:
> > From: Chen Ridong <chenridong@...wei.com>
> >
> > When enabling vmscan tracing, it is observed that nr_requested is always
> > 4096, which is confusing.
> >
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> > mm_vmscan_lru_isolate: classzone=3 order=0 nr_requested=4096 ...
> >
> > This is because it prints MAX_LRU_BATCH, which is meaningless as it's a
> > constant. To fix this, modify it to print nr_to_scan as isolate_lru_folios
> > does.
> >
> > Fixes: 8c2214fc9a47 ("mm: multi-gen LRU: reuse some legacy trace events")
> > Signed-off-by: Chen Ridong <chenridong@...wei.com>
> > ---
> > mm/vmscan.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/mm/vmscan.c b/mm/vmscan.c
> > index fddd168a9737..8cfafd50a7a8 100644
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -4601,7 +4601,7 @@ static int scan_folios(unsigned long nr_to_scan, struct lruvec *lruvec,
> > count_memcg_events(memcg, item, isolated);
> > count_memcg_events(memcg, PGREFILL, sorted);
> > __count_vm_events(PGSCAN_ANON + type, isolated);
> > - trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, MAX_LRU_BATCH,
> > + trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, nr_to_scan,
> > scanned, skipped, isolated,
>
> We do that in isolate_lru_folios().
>
> Given that we do
>
> int remaining = min(nr_to_scan, MAX_LRU_BATCH);
>
> and effectively cap it, I wonder if we would want to trace that capped
> valued instead of MAX_LRU_BATCH.
Yeah, since we explicitly clamp the work at MAX_LRU_BATCH, the trace
should reflect that reality :)
Powered by blists - more mailing lists