Re: [PATCH -next] mm: vmscan: correct nr_requested tracing in
From: Lance Yang
Date: Thu Dec 04 2025 - 04:05:48 EST
From: Lance Yang <lance.yang@xxxxxxxxx>
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@xxxxxxxxxx>
> >
> > 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@xxxxxxxxxx>
> > ---
> > 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 :)