]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - mm/migrate.c
mm: migrate: Add a tracepoint for migrate_pages
[mirror_ubuntu-bionic-kernel.git] / mm / migrate.c
index 04687f69cc173b0581b1bc0381792253ca119fcc..27be9c923dc1b250070da02fbf0e9075487c197c 100644 (file)
@@ -38,6 +38,9 @@
 
 #include <asm/tlbflush.h>
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/migrate.h>
+
 #include "internal.h"
 
 /*
@@ -958,7 +961,7 @@ out:
  */
 int migrate_pages(struct list_head *from,
                new_page_t get_new_page, unsigned long private, bool offlining,
-               enum migrate_mode mode)
+               enum migrate_mode mode, int reason)
 {
        int retry = 1;
        int nr_failed = 0;
@@ -1004,6 +1007,8 @@ out:
                count_vm_events(PGMIGRATE_SUCCESS, nr_succeeded);
        if (nr_failed)
                count_vm_events(PGMIGRATE_FAIL, nr_failed);
+       trace_mm_migrate_pages(nr_succeeded, nr_failed, mode, reason);
+
        if (!swapwrite)
                current->flags &= ~PF_SWAPWRITE;
 
@@ -1145,7 +1150,8 @@ set_status:
        err = 0;
        if (!list_empty(&pagelist)) {
                err = migrate_pages(&pagelist, new_page_node,
-                               (unsigned long)pm, 0, MIGRATE_SYNC);
+                               (unsigned long)pm, 0, MIGRATE_SYNC,
+                               MR_SYSCALL);
                if (err)
                        putback_lru_pages(&pagelist);
        }