Re: [PATCH 2/9] mm: vmscan: use nid from shrink_control for tracepoint

From: Yang Shi
Date: Fri Dec 11 2020 - 14:21:46 EST


On Wed, Dec 2, 2020 at 7:13 PM Xiaqing (A) <saberlily.xia@xxxxxxxxxxxxx> wrote:
>
>
>
> On 2020/12/3 2:27, Yang Shi wrote:
> > The tracepoint's nid should show what node the shrink happens on, the start tracepoint
> > uses nid from shrinkctl, but the nid might be set to 0 before end tracepoint if the
> > shrinker is not NUMA aware, so the traceing log may show the shrink happens on one
> > node but end up on the other node. It seems confusing. And the following patch
> > will remove using nid directly in do_shrink_slab(), this patch also helps cleanup
> > the code.
> >
> > Signed-off-by: Yang Shi <shy828301@xxxxxxxxx>
> > ---
> > mm/vmscan.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/mm/vmscan.c b/mm/vmscan.c
> > index 7d6186a07daf..457ce04eebf2 100644
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -533,7 +533,7 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl,
> > new_nr = atomic_long_add_return(next_deferred,
> > &shrinker->nr_deferred[nid]);
> >
> > - trace_mm_shrink_slab_end(shrinker, nid, freed, nr, new_nr, total_scan);
> > + trace_mm_shrink_slab_end(shrinker, shrinkctl->nid, freed, nr, new_nr, total_scan);
>
> Hi, Yang
>
> When I read this patch, I wondered why you modified it so much until I read patch6. Could you merge
> this patch into patch6?

Sorry for the late reply. It could be, but I was inclined to think
this is a bug and we might need backport it to stable, so I leave it
as a standalone patch.

>
> Thanks!
>
> > return freed;
> > }
> >
>