mm/mempolicy: check hugepage migration is supported by arch in vma_migratable()
Li Xinhai authored
vma_migratable() is called to check if pages in vma can be migrated before
go ahead to further actions.  Currently it is used in below code path:

- task_numa_work
- mbind
- move_pages

For hugetlb mapping, whether vma is migratable or not is determined by:
- CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
- arch_hugetlb_migration_supported

Issue: current code only checks for CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
alone, and no code should use it directly.  (note that current code in
vma_migratable don't cause failure or bug because
unmap_and_move_huge_page() will catch unsupported hugepage and handle it
properly)

This patch checks the two factors by hugepage_migration_supported for
impoving code logic and robustness.  It will enable early bail out of
hugepage migration procedure, but because currently all architecture
supporting hugepage migration is able to support all page size, we would
not see performance gain with this patch appl...
20ca87f2
Name Last commit Last update
Documentation mm/compaction: Disable compact_unevictable_allowed on RT
LICENSES LICENSES: Rename other to deprecated
arch mm/sparse: rename pfn_present() to pfn_in_present_section()
block Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
certs certs: Add wrapper function to check blacklisted binary hash
crypto Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity
drivers mm/sparse: rename pfn_present() to pfn_in_present_section()
fs mm/userfaultfd: honor FAULT_FLAG_KILLABLE in fault path
include mm/mempolicy: check hugepage migration is supported by arch in vma_migratable()
init Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
ipc Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()"
kernel mm/compaction: Disable compact_unevictable_allowed on RT
lib kasan: add test for invalid size in memmove
mm mm/mempolicy: check hugepage migration is supported by arch in vma_migratable()
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
samples Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
scripts scripts/spelling.txt: add more spellings to spelling.txt
security Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
sound Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
tools selftests: vm: drop dependencies on page flags from mlock2 tests
usr initramfs: restore default compression behavior
virt irqchip/gic-v4.1: Move doorbell management to the GICv4 abstraction layer
.clang-format clang-format: Update with the latest for_each macro list
.cocciconfig scripts: add Linux .cocciconfig for coccinelle
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl
.gitattributes .gitattributes: use 'dts' diff driver for dts files
.gitignore selftest/lkdtm: Use local .gitignore
.mailmap Merge tag 'media/v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
COPYING COPYING: state that all contributions really are covered by this file
CREDITS MAINTAINERS: Hand MIPS over to Thomas
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y
Kconfig docs: kbuild: convert docs to ReST and rename to *.rst
MAINTAINERS Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Makefile Merge tag 'kbuild-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
README Drop all 00-INDEX files from Documentation/
Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.