Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 461a7184 authored by Yisheng Xie's avatar Yisheng Xie Committed by Linus Torvalds
Browse files

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: default avatarYisheng Xie <xieyisheng1@huawei.com>
Suggested-by: default avatarMichal Hocko <mhocko@suse.com>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Acked-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: default avatarHillf 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 82e7d3ab
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -71,6 +71,7 @@ config S390
	select ARCH_HAS_DEVMEM_IS_ALLOWED
	select ARCH_HAS_DEVMEM_IS_ALLOWED
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_HAS_GIGANTIC_PAGE
	select ARCH_HAS_KCOV
	select ARCH_HAS_KCOV
	select ARCH_HAS_SG_CHAIN
	select ARCH_HAS_SG_CHAIN
	select ARCH_HAS_UBSAN_SANITIZE_ALL
	select ARCH_HAS_UBSAN_SANITIZE_ALL
+1 −0
Original line number Original line Diff line number Diff line
@@ -28,6 +28,7 @@ config X86
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_FAST_MULTIPLIER
	select ARCH_HAS_FAST_MULTIPLIER
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_HAS_GIGANTIC_PAGE		if X86_64
	select ARCH_HAS_KCOV			if X86_64
	select ARCH_HAS_KCOV			if X86_64
	select ARCH_HAS_PMEM_API		if X86_64
	select ARCH_HAS_PMEM_API		if X86_64
	select ARCH_HAS_MMIO_FLUSH
	select ARCH_HAS_MMIO_FLUSH
+3 −0
Original line number Original line Diff line number Diff line
@@ -200,6 +200,9 @@ config HUGETLBFS
config HUGETLB_PAGE
config HUGETLB_PAGE
	def_bool HUGETLBFS
	def_bool HUGETLBFS


config ARCH_HAS_GIGANTIC_PAGE
	bool

source "fs/configfs/Kconfig"
source "fs/configfs/Kconfig"
source "fs/efivarfs/Kconfig"
source "fs/efivarfs/Kconfig"


+1 −1
Original line number Original line Diff line number Diff line
@@ -1022,7 +1022,7 @@ static int hstate_next_node_to_free(struct hstate *h, nodemask_t *nodes_allowed)
		((node = hstate_next_node_to_free(hs, mask)) || 1);	\
		((node = hstate_next_node_to_free(hs, mask)) || 1);	\
		nr_nodes--)
		nr_nodes--)


#if (defined(CONFIG_X86_64) || defined(CONFIG_S390)) && \
#if defined(CONFIG_ARCH_HAS_GIGANTIC_PAGE) && \
	((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || \
	((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || \
	defined(CONFIG_CMA))
	defined(CONFIG_CMA))
static void destroy_compound_gigantic_page(struct page *page,
static void destroy_compound_gigantic_page(struct page *page,