aboutsummaryrefslogtreecommitdiffstats
path: root/mm/migrate.c
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2012-10-19 05:46:20 -0400
committerMel Gorman <mgorman@suse.de>2012-12-11 09:28:35 -0500
commit5647bc293ab15f66a7b1cda850c5e9d162a6c7c2 (patch)
treeebf21726915b1e814046c950c5882e33dad303b9 /mm/migrate.c
parent1233d588210737ed3696b44c26e71dfa44a6995a (diff)
mm: compaction: Move migration fail/success stats to migrate.c
The compact_pages_moved and compact_pagemigrate_failed events are convenient for determining if compaction is active and to what degree migration is succeeding but it's at the wrong level. Other users of migration may also want to know if migration is working properly and this will be particularly true for any automated NUMA migration. This patch moves the counters down to migration with the new events called pgmigrate_success and pgmigrate_fail. The compact_blocks_moved counter is removed because while it was useful for debugging initially, it's worthless now as no meaningful conclusions can be drawn from its value. Signed-off-by: Mel Gorman <mgorman@suse.de> Reviewed-by: Rik van Riel <riel@redhat.com>
Diffstat (limited to 'mm/migrate.c')
-rw-r--r--mm/migrate.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mm/migrate.c b/mm/migrate.c
index 77ed2d773705..04687f69cc17 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -962,6 +962,7 @@ int migrate_pages(struct list_head *from,
962{ 962{
963 int retry = 1; 963 int retry = 1;
964 int nr_failed = 0; 964 int nr_failed = 0;
965 int nr_succeeded = 0;
965 int pass = 0; 966 int pass = 0;
966 struct page *page; 967 struct page *page;
967 struct page *page2; 968 struct page *page2;
@@ -988,6 +989,7 @@ int migrate_pages(struct list_head *from,
988 retry++; 989 retry++;
989 break; 990 break;
990 case 0: 991 case 0:
992 nr_succeeded++;
991 break; 993 break;
992 default: 994 default:
993 /* Permanent failure */ 995 /* Permanent failure */
@@ -998,6 +1000,10 @@ int migrate_pages(struct list_head *from,
998 } 1000 }
999 rc = 0; 1001 rc = 0;
1000out: 1002out:
1003 if (nr_succeeded)
1004 count_vm_events(PGMIGRATE_SUCCESS, nr_succeeded);
1005 if (nr_failed)
1006 count_vm_events(PGMIGRATE_FAIL, nr_failed);
1001 if (!swapwrite) 1007 if (!swapwrite)
1002 current->flags &= ~PF_SWAPWRITE; 1008 current->flags &= ~PF_SWAPWRITE;
1003 1009