From: Kaiyang Zhao <kaiyang2@xxxxxxxxxx> exports the number of pages scanned on behalf of movable/unmovable allocations in vmstat Signed-off-by: Kaiyang Zhao <zh_kaiyang@xxxxxxxxxxx> --- include/linux/vm_event_item.h | 2 ++ mm/vmscan.c | 11 +++++++++++ mm/vmstat.c | 2 ++ 3 files changed, 15 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index c9183117c8f7..dcfff56c6d29 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -50,6 +50,8 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, PGSCAN_DIRECT_THROTTLE, PGSCAN_ANON, PGSCAN_FILE, + PGSCAN_MOVABLE, /* number of pages scanned on behalf of a movable allocation */ + PGSCAN_UNMOVABLE, PGSTEAL_ANON, PGSTEAL_FILE, #ifdef CONFIG_NUMA diff --git a/mm/vmscan.c b/mm/vmscan.c index ed0f47e2e810..4eadf0254918 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -904,6 +904,12 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl, cond_resched(); } + /* Arbitrarily consider 16 pages scanned */ + if (is_migrate_movable(gfp_migratetype(shrinkctl->gfp_mask))) + count_vm_events(PGSCAN_MOVABLE, 16); + else + count_vm_events(PGSCAN_UNMOVABLE, 16); + /* * The deferred work is increased by any new work (delta) that wasn't * done, decreased by old deferred work that was done now. @@ -2580,6 +2586,11 @@ static unsigned long shrink_inactive_list(unsigned long nr_to_scan, __count_memcg_events(lruvec_memcg(lruvec), item, nr_scanned); __count_vm_events(PGSCAN_ANON + file, nr_scanned); + if (is_migrate_movable(gfp_migratetype(sc->gfp_mask))) + __count_vm_events(PGSCAN_MOVABLE, nr_scanned); + else + __count_vm_events(PGSCAN_UNMOVABLE, nr_scanned); + spin_unlock_irq(&lruvec->lru_lock); if (nr_taken == 0) diff --git a/mm/vmstat.c b/mm/vmstat.c index 444740605f2f..56062d53a36c 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1281,6 +1281,8 @@ const char * const vmstat_text[] = { "pgscan_direct_throttle", "pgscan_anon", "pgscan_file", + "pgscan_by_movable", + "pgscan_by_unmovable", "pgsteal_anon", "pgsteal_file", -- 2.40.1