Add VM counters that record the number of migration success / failures during CMA rebalancing. This is similar to other migrate counters. Signed-off-by: Frank van der Linden --- include/linux/vm_event_item.h | 3 +++ mm/migrate.c | 8 ++++++++ mm/vmstat.c | 2 ++ 3 files changed, 13 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 9e15a088ba38..1711ff85a02f 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -87,6 +87,9 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, CMA_ALLOC_SUCCESS, CMA_ALLOC_FAIL, #endif + CMA_BALANCE_MIGRATE_SUCCESS, + CMA_BALANCE_MIGRATE_FAIL, + UNEVICTABLE_PGCULLED, /* culled to noreclaim list */ UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */ UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */ diff --git a/mm/migrate.c b/mm/migrate.c index 9e5ef39ce73a..63d771daa3bc 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2144,6 +2144,14 @@ int migrate_pages(struct list_head *from, new_folio_t get_new_folio, count_vm_events(THP_MIGRATION_SUCCESS, stats.nr_thp_succeeded); count_vm_events(THP_MIGRATION_FAIL, stats.nr_thp_failed); count_vm_events(THP_MIGRATION_SPLIT, stats.nr_thp_split); + + if (reason == MR_CMA_BALANCE) { + count_vm_events(CMA_BALANCE_MIGRATE_SUCCESS, + stats.nr_succeeded); + count_vm_events(CMA_BALANCE_MIGRATE_FAIL, + stats.nr_failed_pages); + } + trace_mm_migrate_pages(stats.nr_succeeded, stats.nr_failed_pages, stats.nr_thp_succeeded, stats.nr_thp_failed, stats.nr_thp_split, stats.nr_split, mode, diff --git a/mm/vmstat.c b/mm/vmstat.c index 71cd1ceba191..af811328db09 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1392,6 +1392,8 @@ const char * const vmstat_text[] = { #ifdef CONFIG_CMA [I(CMA_ALLOC_SUCCESS)] = "cma_alloc_success", [I(CMA_ALLOC_FAIL)] = "cma_alloc_fail", + [I(CMA_BALANCE_MIGRATE_SUCCESS)] = "cma_balance_migrate_success", + [I(CMA_BALANCE_MIGRATE_FAIL)] = "cma_balance_migrate_fail", #endif [I(UNEVICTABLE_PGCULLED)] = "unevictable_pgs_culled", [I(UNEVICTABLE_PGSCANNED)] = "unevictable_pgs_scanned", -- 2.51.0.384.g4c02a37b29-goog