linux-stable/arch/sh
Naoya Horiguchi 83467efbdb mm: migrate: check movability of hugepage in unmap_and_move_huge_page()
Currently hugepage migration works well only for pmd-based hugepages
(mainly due to lack of testing,) so we had better not enable migration of
other levels of hugepages until we are ready for it.

Some users of hugepage migration (mbind, move_pages, and migrate_pages) do
page table walk and check pud/pmd_huge() there, so they are safe.  But the
other users (softoffline and memory hotremove) don't do this, so without
this patch they can try to migrate unexpected types of hugepages.

To prevent this, we introduce hugepage_migration_support() as an
architecture dependent check of whether hugepage are implemented on a pmd
basis or not.  And on some architecture multiple sizes of hugepages are
available, so hugepage_migration_support() also checks hugepage size.

Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Hillf Danton <dhillf@gmail.com>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Rik van Riel <riel@redhat.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-09-11 15:57:49 -07:00
..
boards MMC highlights for 3.12: 2013-09-10 13:33:09 -07:00
boot Kbuild: centralize MKIMAGE and cmd_uimage definitions 2012-03-26 15:49:20 +02:00
cchips sh: hd64461: Migrate off of deprecated dynamic IRQ API. 2012-05-18 23:20:09 +09:00
configs PCI: hotplug: Convert to be builtin only, not modular 2013-07-25 14:11:06 -06:00
drivers PCI: Delay enabling bridges until they're needed 2013-07-25 12:35:03 -06:00
include ARM: SoC board updates for 3.12 2013-09-06 13:34:43 -07:00
kernel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
lib sh: Fix up stack debugging build. 2013-01-14 18:07:36 +09:00
lib64 sh64: Kill off old exception debugging helpers. 2012-06-14 14:12:18 +09:00
math-emu Disintegrate asm/system.h for SH 2012-03-28 18:30:03 +01:00
mm mm: migrate: check movability of hugepage in unmap_and_move_huge_page() 2013-09-11 15:57:49 -07:00
oprofile oprofile, arm/sh: Fix oprofile_arch_exit() linkage issue 2011-12-23 11:58:34 +01:00
tools sh: Add RSK2+SH7269 board 2012-05-10 17:20:01 +09:00
Kconfig Kconfig: Remove hotplug enable hints in CONFIG_KEXEC help texts 2013-08-22 12:35:01 -07:00
Kconfig.cpu arch/sh: remove depends on CONFIG_EXPERIMENTAL 2013-01-21 14:43:13 -08:00
Kconfig.debug sh: dwarf unwinder depends on SHcompact. 2012-03-30 19:31:22 +09:00
Makefile sh: Setup CROSS_COMPILE at the top 2012-06-13 11:42:13 +09:00