|
@@ -8,6 +8,7 @@
|
|
|
#include <linux/memory.h>
|
|
|
#include <linux/hugetlb.h>
|
|
|
#include <linux/page_owner.h>
|
|
|
+#include <linux/migrate.h>
|
|
|
#include "internal.h"
|
|
|
|
|
|
#define CREATE_TRACE_POINTS
|
|
@@ -294,20 +295,5 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
|
|
|
struct page *alloc_migrate_target(struct page *page, unsigned long private,
|
|
|
int **resultp)
|
|
|
{
|
|
|
- gfp_t gfp_mask = GFP_USER | __GFP_MOVABLE;
|
|
|
-
|
|
|
- /*
|
|
|
- * TODO: allocate a destination hugepage from a nearest neighbor node,
|
|
|
- * accordance with memory policy of the user process if possible. For
|
|
|
- * now as a simple work-around, we use the next node for destination.
|
|
|
- */
|
|
|
- if (PageHuge(page))
|
|
|
- return alloc_huge_page_node(page_hstate(compound_head(page)),
|
|
|
- next_node_in(page_to_nid(page),
|
|
|
- node_online_map));
|
|
|
-
|
|
|
- if (PageHighMem(page))
|
|
|
- gfp_mask |= __GFP_HIGHMEM;
|
|
|
-
|
|
|
- return alloc_page(gfp_mask);
|
|
|
+ return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]);
|
|
|
}
|