[patch 040/140] mm, migrate: remove reason argument from new_page_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Michal Hocko <mhocko@xxxxxxxx>
Subject: mm, migrate: remove reason argument from new_page_t

No allocation callback is using this argument anymore.  new_page_node used
to use this parameter to convey node_id resp.  migration error up to
move_pages code (do_move_page_to_node_array).  The error status never made
it into the final status field and we have a better way to communicate
node id to the status field now.  All other allocation callbacks simply
ignored the argument so we can drop it finally.

[mhocko@xxxxxxxx: fix migration callback]
  Link: http://lkml.kernel.org/r/20180105085259.GH2801@xxxxxxxxxxxxxx
[akpm@xxxxxxxxxxxxxxxxxxxx: fix alloc_misplaced_dst_page()]
[mhocko@xxxxxxxxxx: fix build]
  Link: http://lkml.kernel.org/r/20180103091134.GB11319@xxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/20180103082555.14592-3-mhocko@xxxxxxxxxx
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
Reviewed-by: Zi Yan <zi.yan@xxxxxxxxxxxxxx>
Cc: Andrea Reale <ar@xxxxxxxxxxxxxxxxxx>
Cc: Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 arch/powerpc/mm/mmu_context_iommu.c |    3 +--
 include/linux/migrate.h             |    3 +--
 include/linux/page-isolation.h      |    3 +--
 mm/compaction.c                     |    3 +--
 mm/internal.h                       |    2 +-
 mm/memory-failure.c                 |    2 +-
 mm/memory_hotplug.c                 |    3 +--
 mm/mempolicy.c                      |    6 +++---
 mm/migrate.c                        |   21 +++------------------
 mm/page_isolation.c                 |    3 +--
 10 files changed, 14 insertions(+), 35 deletions(-)

diff -puN arch/powerpc/mm/mmu_context_iommu.c~mm-migrate-remove-reason-argument-from-new_page_t arch/powerpc/mm/mmu_context_iommu.c
--- a/arch/powerpc/mm/mmu_context_iommu.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/arch/powerpc/mm/mmu_context_iommu.c
@@ -75,8 +75,7 @@ EXPORT_SYMBOL_GPL(mm_iommu_preregistered
 /*
  * Taken from alloc_migrate_target with changes to remove CMA allocations
  */
-struct page *new_iommu_non_cma_page(struct page *page, unsigned long private,
-					int **resultp)
+struct page *new_iommu_non_cma_page(struct page *page, unsigned long private)
 {
 	gfp_t gfp_mask = GFP_USER;
 	struct page *new_page;
diff -puN include/linux/migrate.h~mm-migrate-remove-reason-argument-from-new_page_t include/linux/migrate.h
--- a/include/linux/migrate.h~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/include/linux/migrate.h
@@ -7,8 +7,7 @@
 #include <linux/migrate_mode.h>
 #include <linux/hugetlb.h>
 
-typedef struct page *new_page_t(struct page *page, unsigned long private,
-				int **reason);
+typedef struct page *new_page_t(struct page *page, unsigned long private);
 typedef void free_page_t(struct page *page, unsigned long private);
 
 /*
diff -puN include/linux/page-isolation.h~mm-migrate-remove-reason-argument-from-new_page_t include/linux/page-isolation.h
--- a/include/linux/page-isolation.h~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/include/linux/page-isolation.h
@@ -63,7 +63,6 @@ undo_isolate_page_range(unsigned long st
 int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
 			bool skip_hwpoisoned_pages);
 
-struct page *alloc_migrate_target(struct page *page, unsigned long private,
-				int **resultp);
+struct page *alloc_migrate_target(struct page *page, unsigned long private);
 
 #endif
diff -puN mm/compaction.c~mm-migrate-remove-reason-argument-from-new_page_t mm/compaction.c
--- a/mm/compaction.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/compaction.c
@@ -1166,8 +1166,7 @@ static void isolate_freepages(struct com
  * from the isolated freelists in the block we are migrating to.
  */
 static struct page *compaction_alloc(struct page *migratepage,
-					unsigned long data,
-					int **result)
+					unsigned long data)
 {
 	struct compact_control *cc = (struct compact_control *)data;
 	struct page *freepage;
diff -puN mm/internal.h~mm-migrate-remove-reason-argument-from-new_page_t mm/internal.h
--- a/mm/internal.h~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/internal.h
@@ -538,5 +538,5 @@ static inline bool is_migrate_highatomic
 }
 
 void setup_zone_pageset(struct zone *zone);
-extern struct page *alloc_new_node_page(struct page *page, unsigned long node, int **x);
+extern struct page *alloc_new_node_page(struct page *page, unsigned long node);
 #endif	/* __MM_INTERNAL_H */
diff -puN mm/memory-failure.c~mm-migrate-remove-reason-argument-from-new_page_t mm/memory-failure.c
--- a/mm/memory-failure.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/memory-failure.c
@@ -1487,7 +1487,7 @@ int unpoison_memory(unsigned long pfn)
 }
 EXPORT_SYMBOL(unpoison_memory);
 
-static struct page *new_page(struct page *p, unsigned long private, int **x)
+static struct page *new_page(struct page *p, unsigned long private)
 {
 	int nid = page_to_nid(p);
 
diff -puN mm/memory_hotplug.c~mm-migrate-remove-reason-argument-from-new_page_t mm/memory_hotplug.c
--- a/mm/memory_hotplug.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/memory_hotplug.c
@@ -1329,8 +1329,7 @@ static unsigned long scan_movable_pages(
 	return 0;
 }
 
-static struct page *new_node_page(struct page *page, unsigned long private,
-		int **result)
+static struct page *new_node_page(struct page *page, unsigned long private)
 {
 	int nid = page_to_nid(page);
 	nodemask_t nmask = node_states[N_MEMORY];
diff -puN mm/mempolicy.c~mm-migrate-remove-reason-argument-from-new_page_t mm/mempolicy.c
--- a/mm/mempolicy.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/mempolicy.c
@@ -943,7 +943,7 @@ static void migrate_page_add(struct page
 }
 
 /* page allocation callback for NUMA node migration */
-struct page *alloc_new_node_page(struct page *page, unsigned long node, int **x)
+struct page *alloc_new_node_page(struct page *page, unsigned long node)
 {
 	if (PageHuge(page))
 		return alloc_huge_page_node(page_hstate(compound_head(page)),
@@ -1108,7 +1108,7 @@ int do_migrate_pages(struct mm_struct *m
  * list of pages handed to migrate_pages()--which is how we get here--
  * is in virtual address order.
  */
-static struct page *new_page(struct page *page, unsigned long start, int **x)
+static struct page *new_page(struct page *page, unsigned long start)
 {
 	struct vm_area_struct *vma;
 	unsigned long uninitialized_var(address);
@@ -1153,7 +1153,7 @@ int do_migrate_pages(struct mm_struct *m
 	return -ENOSYS;
 }
 
-static struct page *new_page(struct page *page, unsigned long start, int **x)
+static struct page *new_page(struct page *page, unsigned long start)
 {
 	return NULL;
 }
diff -puN mm/migrate.c~mm-migrate-remove-reason-argument-from-new_page_t mm/migrate.c
--- a/mm/migrate.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/migrate.c
@@ -1137,10 +1137,9 @@ static ICE_noinline int unmap_and_move(n
 				   enum migrate_reason reason)
 {
 	int rc = MIGRATEPAGE_SUCCESS;
-	int *result = NULL;
 	struct page *newpage;
 
-	newpage = get_new_page(page, private, &result);
+	newpage = get_new_page(page, private);
 	if (!newpage)
 		return -ENOMEM;
 
@@ -1231,12 +1230,6 @@ put_new:
 			put_page(newpage);
 	}
 
-	if (result) {
-		if (rc)
-			*result = rc;
-		else
-			*result = page_to_nid(newpage);
-	}
 	return rc;
 }
 
@@ -1264,7 +1257,6 @@ static int unmap_and_move_huge_page(new_
 				enum migrate_mode mode, int reason)
 {
 	int rc = -EAGAIN;
-	int *result = NULL;
 	int page_was_mapped = 0;
 	struct page *new_hpage;
 	struct anon_vma *anon_vma = NULL;
@@ -1281,7 +1273,7 @@ static int unmap_and_move_huge_page(new_
 		return -ENOSYS;
 	}
 
-	new_hpage = get_new_page(hpage, private, &result);
+	new_hpage = get_new_page(hpage, private);
 	if (!new_hpage)
 		return -ENOMEM;
 
@@ -1345,12 +1337,6 @@ out:
 	else
 		putback_active_hugepage(new_hpage);
 
-	if (result) {
-		if (rc)
-			*result = rc;
-		else
-			*result = page_to_nid(new_hpage);
-	}
 	return rc;
 }
 
@@ -1828,8 +1814,7 @@ static bool migrate_balanced_pgdat(struc
 }
 
 static struct page *alloc_misplaced_dst_page(struct page *page,
-					   unsigned long data,
-					   int **result)
+					   unsigned long data)
 {
 	int nid = (int) data;
 	struct page *newpage;
diff -puN mm/page_isolation.c~mm-migrate-remove-reason-argument-from-new_page_t mm/page_isolation.c
--- a/mm/page_isolation.c~mm-migrate-remove-reason-argument-from-new_page_t
+++ a/mm/page_isolation.c
@@ -309,8 +309,7 @@ int test_pages_isolated(unsigned long st
 	return pfn < end_pfn ? -EBUSY : 0;
 }
 
-struct page *alloc_migrate_target(struct page *page, unsigned long private,
-				  int **resultp)
+struct page *alloc_migrate_target(struct page *page, unsigned long private)
 {
 	return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]);
 }
_
--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux