diff options
-rw-r--r-- | include/linux/gfp.h | 13 | ||||
-rw-r--r-- | include/trace/events/mmflags.h | 3 | ||||
-rw-r--r-- | mm/huge_memory.c | 3 | ||||
-rw-r--r-- | mm/khugepaged.c | 5 | ||||
-rw-r--r-- | mm/page_alloc.c | 5 | ||||
-rw-r--r-- | tools/perf/builtin-kmem.c | 1 |
6 files changed, 9 insertions, 21 deletions
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 4175dca4ac39..7806a8f80abc 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
@@ -38,9 +38,8 @@ struct vm_area_struct; | |||
38 | #define ___GFP_ACCOUNT 0x100000u | 38 | #define ___GFP_ACCOUNT 0x100000u |
39 | #define ___GFP_NOTRACK 0x200000u | 39 | #define ___GFP_NOTRACK 0x200000u |
40 | #define ___GFP_DIRECT_RECLAIM 0x400000u | 40 | #define ___GFP_DIRECT_RECLAIM 0x400000u |
41 | #define ___GFP_OTHER_NODE 0x800000u | 41 | #define ___GFP_WRITE 0x800000u |
42 | #define ___GFP_WRITE 0x1000000u | 42 | #define ___GFP_KSWAPD_RECLAIM 0x1000000u |
43 | #define ___GFP_KSWAPD_RECLAIM 0x2000000u | ||
44 | /* If the above are modified, __GFP_BITS_SHIFT may need updating */ | 43 | /* If the above are modified, __GFP_BITS_SHIFT may need updating */ |
45 | 44 | ||
46 | /* | 45 | /* |
@@ -172,11 +171,6 @@ struct vm_area_struct; | |||
172 | * __GFP_NOTRACK_FALSE_POSITIVE is an alias of __GFP_NOTRACK. It's a means of | 171 | * __GFP_NOTRACK_FALSE_POSITIVE is an alias of __GFP_NOTRACK. It's a means of |
173 | * distinguishing in the source between false positives and allocations that | 172 | * distinguishing in the source between false positives and allocations that |
174 | * cannot be supported (e.g. page tables). | 173 | * cannot be supported (e.g. page tables). |
175 | * | ||
176 | * __GFP_OTHER_NODE is for allocations that are on a remote node but that | ||
177 | * should not be accounted for as a remote allocation in vmstat. A | ||
178 | * typical user would be khugepaged collapsing a huge page on a remote | ||
179 | * node. | ||
180 | */ | 174 | */ |
181 | #define __GFP_COLD ((__force gfp_t)___GFP_COLD) | 175 | #define __GFP_COLD ((__force gfp_t)___GFP_COLD) |
182 | #define __GFP_NOWARN ((__force gfp_t)___GFP_NOWARN) | 176 | #define __GFP_NOWARN ((__force gfp_t)___GFP_NOWARN) |
@@ -184,10 +178,9 @@ struct vm_area_struct; | |||
184 | #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) | 178 | #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) |
185 | #define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) | 179 | #define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) |
186 | #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK) | 180 | #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK) |
187 | #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) | ||
188 | 181 | ||
189 | /* Room for N __GFP_FOO bits */ | 182 | /* Room for N __GFP_FOO bits */ |
190 | #define __GFP_BITS_SHIFT 26 | 183 | #define __GFP_BITS_SHIFT 25 |
191 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) | 184 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) |
192 | 185 | ||
193 | /* | 186 | /* |
diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 9e687ca9a307..15bf875d0e4a 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h | |||
@@ -47,8 +47,7 @@ | |||
47 | {(unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \ | 47 | {(unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \ |
48 | {(unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \ | 48 | {(unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \ |
49 | {(unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\ | 49 | {(unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\ |
50 | {(unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"},\ | 50 | {(unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"}\ |
51 | {(unsigned long)__GFP_OTHER_NODE, "__GFP_OTHER_NODE"} \ | ||
52 | 51 | ||
53 | #define show_gfp_flags(flags) \ | 52 | #define show_gfp_flags(flags) \ |
54 | (flags) ? __print_flags(flags, "|", \ | 53 | (flags) ? __print_flags(flags, "|", \ |
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 10eedbf14421..72339a646fb1 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c | |||
@@ -919,8 +919,7 @@ static int do_huge_pmd_wp_page_fallback(struct vm_fault *vmf, pmd_t orig_pmd, | |||
919 | } | 919 | } |
920 | 920 | ||
921 | for (i = 0; i < HPAGE_PMD_NR; i++) { | 921 | for (i = 0; i < HPAGE_PMD_NR; i++) { |
922 | pages[i] = alloc_page_vma_node(GFP_HIGHUSER_MOVABLE | | 922 | pages[i] = alloc_page_vma_node(GFP_HIGHUSER_MOVABLE, vma, |
923 | __GFP_OTHER_NODE, vma, | ||
924 | vmf->address, page_to_nid(page)); | 923 | vmf->address, page_to_nid(page)); |
925 | if (unlikely(!pages[i] || | 924 | if (unlikely(!pages[i] || |
926 | mem_cgroup_try_charge(pages[i], vma->vm_mm, | 925 | mem_cgroup_try_charge(pages[i], vma->vm_mm, |
diff --git a/mm/khugepaged.c b/mm/khugepaged.c index b0924a68cc36..77ae3239c3de 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c | |||
@@ -943,7 +943,7 @@ static void collapse_huge_page(struct mm_struct *mm, | |||
943 | VM_BUG_ON(address & ~HPAGE_PMD_MASK); | 943 | VM_BUG_ON(address & ~HPAGE_PMD_MASK); |
944 | 944 | ||
945 | /* Only allocate from the target node */ | 945 | /* Only allocate from the target node */ |
946 | gfp = alloc_hugepage_khugepaged_gfpmask() | __GFP_OTHER_NODE | __GFP_THISNODE; | 946 | gfp = alloc_hugepage_khugepaged_gfpmask() | __GFP_THISNODE; |
947 | 947 | ||
948 | /* | 948 | /* |
949 | * Before allocating the hugepage, release the mmap_sem read lock. | 949 | * Before allocating the hugepage, release the mmap_sem read lock. |
@@ -1309,8 +1309,7 @@ static void collapse_shmem(struct mm_struct *mm, | |||
1309 | VM_BUG_ON(start & (HPAGE_PMD_NR - 1)); | 1309 | VM_BUG_ON(start & (HPAGE_PMD_NR - 1)); |
1310 | 1310 | ||
1311 | /* Only allocate from the target node */ | 1311 | /* Only allocate from the target node */ |
1312 | gfp = alloc_hugepage_khugepaged_gfpmask() | | 1312 | gfp = alloc_hugepage_khugepaged_gfpmask() | __GFP_THISNODE; |
1313 | __GFP_OTHER_NODE | __GFP_THISNODE; | ||
1314 | 1313 | ||
1315 | new_page = khugepaged_alloc_page(hpage, gfp, node); | 1314 | new_page = khugepaged_alloc_page(hpage, gfp, node); |
1316 | if (!new_page) { | 1315 | if (!new_page) { |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index cba2a64792e6..872caae544ef 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -2584,8 +2584,7 @@ int __isolate_free_page(struct page *page, unsigned int order) | |||
2584 | * | 2584 | * |
2585 | * Must be called with interrupts disabled. | 2585 | * Must be called with interrupts disabled. |
2586 | */ | 2586 | */ |
2587 | static inline void zone_statistics(struct zone *preferred_zone, struct zone *z, | 2587 | static inline void zone_statistics(struct zone *preferred_zone, struct zone *z) |
2588 | gfp_t flags) | ||
2589 | { | 2588 | { |
2590 | #ifdef CONFIG_NUMA | 2589 | #ifdef CONFIG_NUMA |
2591 | enum zone_stat_item local_stat = NUMA_LOCAL; | 2590 | enum zone_stat_item local_stat = NUMA_LOCAL; |
@@ -2667,7 +2666,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone, | |||
2667 | } | 2666 | } |
2668 | 2667 | ||
2669 | __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order); | 2668 | __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order); |
2670 | zone_statistics(preferred_zone, zone, gfp_flags); | 2669 | zone_statistics(preferred_zone, zone); |
2671 | local_irq_restore(flags); | 2670 | local_irq_restore(flags); |
2672 | 2671 | ||
2673 | VM_BUG_ON_PAGE(bad_range(zone, page), page); | 2672 | VM_BUG_ON_PAGE(bad_range(zone, page), page); |
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index 35a02f8e5a4a..915869e00d86 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c | |||
@@ -655,7 +655,6 @@ static const struct { | |||
655 | { "__GFP_RECLAIM", "R" }, | 655 | { "__GFP_RECLAIM", "R" }, |
656 | { "__GFP_DIRECT_RECLAIM", "DR" }, | 656 | { "__GFP_DIRECT_RECLAIM", "DR" }, |
657 | { "__GFP_KSWAPD_RECLAIM", "KR" }, | 657 | { "__GFP_KSWAPD_RECLAIM", "KR" }, |
658 | { "__GFP_OTHER_NODE", "ON" }, | ||
659 | }; | 658 | }; |
660 | 659 | ||
661 | static size_t max_gfp_len; | 660 | static size_t max_gfp_len; |