linux-bl808/mm
David Rientjes b360edb43f mm, mempolicy: migrate_to_node should only migrate to node
migrate_to_node() is intended to migrate a page from one source node to
a target node.

Today, migrate_to_node() could end up migrating to any node, not only
the target node.  This is because the page migration allocator,
new_node_page() does not pass __GFP_THISNODE to
alloc_pages_exact_node().  This causes the target node to be preferred
but allows fallback to any other node in order of affinity.

Prevent this by allocating with __GFP_THISNODE.  If memory is not
available, -ENOMEM will be returned as appropriate.

Signed-off-by: David Rientjes <rientjes@google.com>
Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-04-14 16:49:03 -07:00
..
kasan kasan, module, vmalloc: rework shadow allocation for modules 2015-03-12 18:46:08 -07:00
backing-dev.c
balloon_compaction.c
bootmem.c
cleancache.c cleancache: remove limit on the number of cleancache enabled filesystems 2015-04-14 16:49:03 -07:00
cma.c mm: cma: allocation trigger 2015-04-14 16:49:00 -07:00
cma.h mm: cma: allocation trigger 2015-04-14 16:49:00 -07:00
cma_debug.c mm-cma-allocation-trigger-fix 2015-04-14 16:49:00 -07:00
compaction.c mm/compaction: enhance compaction finish condition 2015-04-14 16:49:01 -07:00
debug-pagealloc.c
debug.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c page_writeback: clean up mess around cancel_dirty_page() 2015-04-14 16:49:01 -07:00
frontswap.c
gup.c mm: move mm_populate()-related code to mm/gup.c 2015-04-14 16:49:00 -07:00
highmem.c
huge_memory.c mm: incorporate zero pages into transparent huge pages 2015-04-14 16:49:01 -07:00
hugetlb.c mm/hugetlb: use pmd_page() in follow_huge_pmd() 2015-04-14 16:48:56 -07:00
hugetlb_cgroup.c
hwpoison-inject.c
init-mm.c
internal.h mm/compaction: enhance compaction finish condition 2015-04-14 16:49:01 -07:00
interval_tree.c
Kconfig mm: cma: debugfs interface 2015-04-14 16:49:00 -07:00
Kconfig.debug
kmemcheck.c
kmemleak-test.c
kmemleak.c
ksm.c
list_lru.c
maccess.c
madvise.c
Makefile mm: cma: debugfs interface 2015-04-14 16:49:00 -07:00
memblock.c mm/memblock.c: rename local variable of memblock_type to `type' 2015-04-14 16:49:00 -07:00
memcontrol.c mm: memcontrol: update copyright notice 2015-04-14 16:49:00 -07:00
memory-failure.c
memory.c mm: refactor do_wp_page handling of shared vma into a function 2015-04-14 16:49:03 -07:00
memory_hotplug.c mm, hotplug: fix concurrent memory hot-add deadlock 2015-04-14 16:49:00 -07:00
mempolicy.c mm, mempolicy: migrate_to_node should only migrate to node 2015-04-14 16:49:03 -07:00
mempool.c
migrate.c mm/migrate: mark unmap_and_move() "noinline" to avoid ICE in gcc 4.7.3 2015-04-14 16:48:59 -07:00
mincore.c
mlock.c mm: move mm_populate()-related code to mm/gup.c 2015-04-14 16:49:00 -07:00
mm_init.c
mmap.c mm: rename __mlock_vma_pages_range() to populate_vma_page_range() 2015-04-14 16:49:00 -07:00
mmu_context.c
mmu_notifier.c
mmzone.c
mprotect.c mm: numa: preserve PTE write permissions across a NUMA hinting fault 2015-03-25 16:20:31 -07:00
mremap.c fix mremap() vs. ioctx_kill() race 2015-04-06 17:50:59 -04:00
msync.c
nobootmem.c
nommu.c mm/nommu.c: export symbol max_mapnr 2015-03-12 18:46:08 -07:00
oom_kill.c
page-writeback.c page_writeback: clean up mess around cancel_dirty_page() 2015-04-14 16:49:01 -07:00
page_alloc.c mm: completely remove dumping per-cpu lists from show_mem() 2015-04-14 16:49:01 -07:00
page_counter.c
page_ext.c
page_io.c
page_isolation.c mm/page_alloc.c: call kernel_map_pages in unset_migrateype_isolate 2015-03-25 16:20:30 -07:00
page_owner.c
pagewalk.c mm/pagewalk.c: prevent positive return value of walk_page_test() from being passed to callers 2015-03-25 16:20:30 -07:00
percpu-km.c
percpu-vm.c
percpu.c percpu: Fix trivial typos in comments 2015-03-24 13:41:54 -04:00
pgtable-generic.c
process_vm_access.c
quicklist.c
readahead.c
rmap.c mm: fix anon_vma->degree underflow in anon_vma endless growing prevention 2015-03-25 16:20:30 -07:00
shmem.c
slab.c
slab.h
slab_common.c
slob.c slob: make slob_alloc_node() static and remove EXPORT_SYMBOL() 2015-04-14 16:48:59 -07:00
slub.c slub: use bool function return values of true/false not 1/0 2015-04-14 16:48:59 -07:00
sparse-vmemmap.c
sparse.c
swap.c
swap_cgroup.c
swap_state.c
swapfile.c
truncate.c page_writeback: clean up mess around cancel_dirty_page() 2015-04-14 16:49:01 -07:00
util.c
vmacache.c
vmalloc.c kasan, module, vmalloc: rework shadow allocation for modules 2015-03-12 18:46:08 -07:00
vmpressure.c
vmscan.c
vmstat.c
workingset.c
zbud.c
zpool.c
zsmalloc.c
zswap.c