diff options
author | Yisheng Xie <xieyisheng1@huawei.com> | 2016-10-07 20:01:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-07 21:46:29 -0400 |
commit | 461a7184320a1b4d2c12ad538354062fef4ee0f1 (patch) | |
tree | 275112facfca37fbd1f6e566c2d905b4a6727d00 | |
parent | 82e7d3abec86cba9df945a765bba384f8ac113a7 (diff) |
mm/hugetlb: introduce ARCH_HAS_GIGANTIC_PAGE
Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic
page. No functional change with this patch.
Link: http://lkml.kernel.org/r/1475227569-63446-2-git-send-email-xieyisheng1@huawei.com
Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
Suggested-by: Michal Hocko <mhocko@suse.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com>
Cc: Hanjun Guo <guohanjun@huawei.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/s390/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/Kconfig | 1 | ||||
-rw-r--r-- | fs/Kconfig | 3 | ||||
-rw-r--r-- | mm/hugetlb.c | 2 |
4 files changed, 6 insertions, 1 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index deeadfa291ba..fb538031569a 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -71,6 +71,7 @@ config S390 | |||
71 | select ARCH_HAS_DEVMEM_IS_ALLOWED | 71 | select ARCH_HAS_DEVMEM_IS_ALLOWED |
72 | select ARCH_HAS_ELF_RANDOMIZE | 72 | select ARCH_HAS_ELF_RANDOMIZE |
73 | select ARCH_HAS_GCOV_PROFILE_ALL | 73 | select ARCH_HAS_GCOV_PROFILE_ALL |
74 | select ARCH_HAS_GIGANTIC_PAGE | ||
74 | select ARCH_HAS_KCOV | 75 | select ARCH_HAS_KCOV |
75 | select ARCH_HAS_SG_CHAIN | 76 | select ARCH_HAS_SG_CHAIN |
76 | select ARCH_HAS_UBSAN_SANITIZE_ALL | 77 | select ARCH_HAS_UBSAN_SANITIZE_ALL |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 58bec8f9641a..827273c56ae9 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -28,6 +28,7 @@ config X86 | |||
28 | select ARCH_HAS_ELF_RANDOMIZE | 28 | select ARCH_HAS_ELF_RANDOMIZE |
29 | select ARCH_HAS_FAST_MULTIPLIER | 29 | select ARCH_HAS_FAST_MULTIPLIER |
30 | select ARCH_HAS_GCOV_PROFILE_ALL | 30 | select ARCH_HAS_GCOV_PROFILE_ALL |
31 | select ARCH_HAS_GIGANTIC_PAGE if X86_64 | ||
31 | select ARCH_HAS_KCOV if X86_64 | 32 | select ARCH_HAS_KCOV if X86_64 |
32 | select ARCH_HAS_PMEM_API if X86_64 | 33 | select ARCH_HAS_PMEM_API if X86_64 |
33 | select ARCH_HAS_MMIO_FLUSH | 34 | select ARCH_HAS_MMIO_FLUSH |
diff --git a/fs/Kconfig b/fs/Kconfig index 3ef62bad8f2b..4bd03a2b0518 100644 --- a/fs/Kconfig +++ b/fs/Kconfig | |||
@@ -200,6 +200,9 @@ config HUGETLBFS | |||
200 | config HUGETLB_PAGE | 200 | config HUGETLB_PAGE |
201 | def_bool HUGETLBFS | 201 | def_bool HUGETLBFS |
202 | 202 | ||
203 | config ARCH_HAS_GIGANTIC_PAGE | ||
204 | bool | ||
205 | |||
203 | source "fs/configfs/Kconfig" | 206 | source "fs/configfs/Kconfig" |
204 | source "fs/efivarfs/Kconfig" | 207 | source "fs/efivarfs/Kconfig" |
205 | 208 | ||
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 770d83eb3f48..e4a4500758f2 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -1022,7 +1022,7 @@ static int hstate_next_node_to_free(struct hstate *h, nodemask_t *nodes_allowed) | |||
1022 | ((node = hstate_next_node_to_free(hs, mask)) || 1); \ | 1022 | ((node = hstate_next_node_to_free(hs, mask)) || 1); \ |
1023 | nr_nodes--) | 1023 | nr_nodes--) |
1024 | 1024 | ||
1025 | #if (defined(CONFIG_X86_64) || defined(CONFIG_S390)) && \ | 1025 | #if defined(CONFIG_ARCH_HAS_GIGANTIC_PAGE) && \ |
1026 | ((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || \ | 1026 | ((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || \ |
1027 | defined(CONFIG_CMA)) | 1027 | defined(CONFIG_CMA)) |
1028 | static void destroy_compound_gigantic_page(struct page *page, | 1028 | static void destroy_compound_gigantic_page(struct page *page, |