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 tracing 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.

Acked-by: Vlastimil Babka <vba...@suse.cz>
Acked-by: Kirill Tkhai <ktk...@virtuozzo.com>
Reviewed-by: Shakeel Butt <shake...@google.com>
Acked-by: Roman Gushchin <g...@fb.com>
Signed-off-by: Yang Shi <shy828...@gmail.com>
---
 mm/vmscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 407051ebe869..bdc32c803c66 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -536,7 +536,7 @@ static unsigned long do_shrink_slab(struct shrink_control 
*shrinkctl,
        else
                new_nr = atomic_long_read(&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);
        return freed;
 }
 
-- 
2.26.2

Reply via email to