* [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page
@ 2016-08-22 13:20 ` Xie Yisheng
0 siblings, 0 replies; 21+ messages in thread
From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw)
To: linux-arm-kernel
Arm64 supports different size of gigantic page which can be seen from:
commit 084bd29810a5 ("ARM64: mm: HugeTLB support.")
commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit")
So I tried to use this function by adding hugepagesz=1G in kernel
parameters, with CONFIG_CMA=y. However, when I
echo xx > \
/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
it failed with the following info:
-bash: echo: write error: Invalid argument
This is a v3 patchset which make gigantic page can be
allocated and freed at runtime for arch arm64,
with CONFIG_CMA=y or other related configs is enabled.
You can see the former discussions at:
https://lkml.org/lkml/2016/8/18/310
https://lkml.org/lkml/2016/8/21/410
Xie Yisheng (2):
mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE
arm64 Kconfig: Select gigantic page
arch/arm64/Kconfig | 1 +
arch/s390/Kconfig | 1 +
arch/x86/Kconfig | 1 +
fs/Kconfig | 3 ++++
mm/hugetlb.c | 2 +-
5 files changed, 7 insertions(+), 1 deletion(-)
--
1.7.12.4
^ permalink raw reply [flat|nested] 21+ messages in thread* [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page @ 2016-08-22 13:20 ` Xie Yisheng 0 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: akpm, mhocko Cc: guohanjun, linux-mm, linux-kernel, will.deacon, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Arm64 supports different size of gigantic page which can be seen from: commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") So I tried to use this function by adding hugepagesz=1G in kernel parameters, with CONFIG_CMA=y. However, when I echo xx > \ /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages it failed with the following info: -bash: echo: write error: Invalid argument This is a v3 patchset which make gigantic page can be allocated and freed at runtime for arch arm64, with CONFIG_CMA=y or other related configs is enabled. You can see the former discussions at: https://lkml.org/lkml/2016/8/18/310 https://lkml.org/lkml/2016/8/21/410 Xie Yisheng (2): mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE arm64 Kconfig: Select gigantic page arch/arm64/Kconfig | 1 + arch/s390/Kconfig | 1 + arch/x86/Kconfig | 1 + fs/Kconfig | 3 ++++ mm/hugetlb.c | 2 +- 5 files changed, 7 insertions(+), 1 deletion(-) -- 1.7.12.4 ^ permalink raw reply [flat|nested] 21+ messages in thread
* [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page @ 2016-08-22 13:20 ` Xie Yisheng 0 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: akpm, mhocko Cc: guohanjun, linux-mm, linux-kernel, will.deacon, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Arm64 supports different size of gigantic page which can be seen from: commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") So I tried to use this function by adding hugepagesz=1G in kernel parameters, with CONFIG_CMA=y. However, when I echo xx > \ /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages it failed with the following info: -bash: echo: write error: Invalid argument This is a v3 patchset which make gigantic page can be allocated and freed at runtime for arch arm64, with CONFIG_CMA=y or other related configs is enabled. You can see the former discussions at: https://lkml.org/lkml/2016/8/18/310 https://lkml.org/lkml/2016/8/21/410 Xie Yisheng (2): mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE arm64 Kconfig: Select gigantic page arch/arm64/Kconfig | 1 + arch/s390/Kconfig | 1 + arch/x86/Kconfig | 1 + fs/Kconfig | 3 ++++ mm/hugetlb.c | 2 +- 5 files changed, 7 insertions(+), 1 deletion(-) -- 1.7.12.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 21+ messages in thread
* [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE 2016-08-22 13:20 ` Xie Yisheng (?) @ 2016-08-22 13:20 ` Xie Yisheng -1 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: linux-arm-kernel Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. No functional change with this patch. Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> --- arch/s390/Kconfig | 1 + arch/x86/Kconfig | 1 + fs/Kconfig | 3 +++ mm/hugetlb.c | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index e751fe2..a8c8fa3 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -72,6 +72,7 @@ config S390 select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_SG_CHAIN select ARCH_HAVE_NMI_SAFE_CMPXCHG diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index c580d8c..2fdc300 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -29,6 +29,7 @@ config X86 select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_FAST_MULTIPLIER select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE if X86_64 select ARCH_HAS_KCOV if X86_64 select ARCH_HAS_PMEM_API if X86_64 select ARCH_HAS_MMIO_FLUSH diff --git a/fs/Kconfig b/fs/Kconfig index 2bc7ad7..b938205 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -199,6 +199,9 @@ config HUGETLBFS config HUGETLB_PAGE def_bool HUGETLBFS +config ARCH_HAS_GIGANTIC_PAGE + bool + source "fs/configfs/Kconfig" source "fs/efivarfs/Kconfig" diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 87e11d8..8488dcc 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) ((node = hstate_next_node_to_free(hs, mask)) || 1); \ 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_CMA)) static void destroy_compound_gigantic_page(struct page *page, -- 1.7.12.4 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE @ 2016-08-22 13:20 ` Xie Yisheng 0 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: akpm, mhocko Cc: guohanjun, linux-mm, linux-kernel, will.deacon, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. No functional change with this patch. Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> --- arch/s390/Kconfig | 1 + arch/x86/Kconfig | 1 + fs/Kconfig | 3 +++ mm/hugetlb.c | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index e751fe2..a8c8fa3 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -72,6 +72,7 @@ config S390 select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_SG_CHAIN select ARCH_HAVE_NMI_SAFE_CMPXCHG diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index c580d8c..2fdc300 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -29,6 +29,7 @@ config X86 select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_FAST_MULTIPLIER select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE if X86_64 select ARCH_HAS_KCOV if X86_64 select ARCH_HAS_PMEM_API if X86_64 select ARCH_HAS_MMIO_FLUSH diff --git a/fs/Kconfig b/fs/Kconfig index 2bc7ad7..b938205 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -199,6 +199,9 @@ config HUGETLBFS config HUGETLB_PAGE def_bool HUGETLBFS +config ARCH_HAS_GIGANTIC_PAGE + bool + source "fs/configfs/Kconfig" source "fs/efivarfs/Kconfig" diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 87e11d8..8488dcc 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) ((node = hstate_next_node_to_free(hs, mask)) || 1); \ 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_CMA)) static void destroy_compound_gigantic_page(struct page *page, -- 1.7.12.4 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE @ 2016-08-22 13:20 ` Xie Yisheng 0 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: akpm, mhocko Cc: guohanjun, linux-mm, linux-kernel, will.deacon, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. No functional change with this patch. Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> --- arch/s390/Kconfig | 1 + arch/x86/Kconfig | 1 + fs/Kconfig | 3 +++ mm/hugetlb.c | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index e751fe2..a8c8fa3 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -72,6 +72,7 @@ config S390 select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_SG_CHAIN select ARCH_HAVE_NMI_SAFE_CMPXCHG diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index c580d8c..2fdc300 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -29,6 +29,7 @@ config X86 select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_FAST_MULTIPLIER select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE if X86_64 select ARCH_HAS_KCOV if X86_64 select ARCH_HAS_PMEM_API if X86_64 select ARCH_HAS_MMIO_FLUSH diff --git a/fs/Kconfig b/fs/Kconfig index 2bc7ad7..b938205 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -199,6 +199,9 @@ config HUGETLBFS config HUGETLB_PAGE def_bool HUGETLBFS +config ARCH_HAS_GIGANTIC_PAGE + bool + source "fs/configfs/Kconfig" source "fs/efivarfs/Kconfig" diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 87e11d8..8488dcc 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) ((node = hstate_next_node_to_free(hs, mask)) || 1); \ 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_CMA)) static void destroy_compound_gigantic_page(struct page *page, -- 1.7.12.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE 2016-08-22 13:20 ` Xie Yisheng (?) @ 2016-08-22 13:44 ` Michal Hocko -1 siblings, 0 replies; 21+ messages in thread From: Michal Hocko @ 2016-08-22 13:44 UTC (permalink / raw) To: linux-arm-kernel On Mon 22-08-16 21:20:03, Xie Yisheng wrote: > Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. > No functional change with this patch. > > Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> Acked-by: Michal Hocko <mhocko@suse.com> > --- > arch/s390/Kconfig | 1 + > arch/x86/Kconfig | 1 + > fs/Kconfig | 3 +++ > mm/hugetlb.c | 2 +- > 4 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index e751fe2..a8c8fa3 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -72,6 +72,7 @@ config S390 > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_GCOV_PROFILE_ALL > + select ARCH_HAS_GIGANTIC_PAGE > select ARCH_HAS_KCOV > select ARCH_HAS_SG_CHAIN > select ARCH_HAVE_NMI_SAFE_CMPXCHG > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index c580d8c..2fdc300 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -29,6 +29,7 @@ config X86 > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_FAST_MULTIPLIER > select ARCH_HAS_GCOV_PROFILE_ALL > + select ARCH_HAS_GIGANTIC_PAGE if X86_64 > select ARCH_HAS_KCOV if X86_64 > select ARCH_HAS_PMEM_API if X86_64 > select ARCH_HAS_MMIO_FLUSH > diff --git a/fs/Kconfig b/fs/Kconfig > index 2bc7ad7..b938205 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -199,6 +199,9 @@ config HUGETLBFS > config HUGETLB_PAGE > def_bool HUGETLBFS > > +config ARCH_HAS_GIGANTIC_PAGE > + bool > + > source "fs/configfs/Kconfig" > source "fs/efivarfs/Kconfig" > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 87e11d8..8488dcc 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) > ((node = hstate_next_node_to_free(hs, mask)) || 1); \ > 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_CMA)) > static void destroy_compound_gigantic_page(struct page *page, > -- > 1.7.12.4 > -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE @ 2016-08-22 13:44 ` Michal Hocko 0 siblings, 0 replies; 21+ messages in thread From: Michal Hocko @ 2016-08-22 13:44 UTC (permalink / raw) To: Xie Yisheng Cc: akpm, guohanjun, linux-mm, linux-kernel, will.deacon, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi On Mon 22-08-16 21:20:03, Xie Yisheng wrote: > Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. > No functional change with this patch. > > Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> Acked-by: Michal Hocko <mhocko@suse.com> > --- > arch/s390/Kconfig | 1 + > arch/x86/Kconfig | 1 + > fs/Kconfig | 3 +++ > mm/hugetlb.c | 2 +- > 4 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index e751fe2..a8c8fa3 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -72,6 +72,7 @@ config S390 > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_GCOV_PROFILE_ALL > + select ARCH_HAS_GIGANTIC_PAGE > select ARCH_HAS_KCOV > select ARCH_HAS_SG_CHAIN > select ARCH_HAVE_NMI_SAFE_CMPXCHG > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index c580d8c..2fdc300 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -29,6 +29,7 @@ config X86 > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_FAST_MULTIPLIER > select ARCH_HAS_GCOV_PROFILE_ALL > + select ARCH_HAS_GIGANTIC_PAGE if X86_64 > select ARCH_HAS_KCOV if X86_64 > select ARCH_HAS_PMEM_API if X86_64 > select ARCH_HAS_MMIO_FLUSH > diff --git a/fs/Kconfig b/fs/Kconfig > index 2bc7ad7..b938205 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -199,6 +199,9 @@ config HUGETLBFS > config HUGETLB_PAGE > def_bool HUGETLBFS > > +config ARCH_HAS_GIGANTIC_PAGE > + bool > + > source "fs/configfs/Kconfig" > source "fs/efivarfs/Kconfig" > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 87e11d8..8488dcc 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) > ((node = hstate_next_node_to_free(hs, mask)) || 1); \ > 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_CMA)) > static void destroy_compound_gigantic_page(struct page *page, > -- > 1.7.12.4 > -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE @ 2016-08-22 13:44 ` Michal Hocko 0 siblings, 0 replies; 21+ messages in thread From: Michal Hocko @ 2016-08-22 13:44 UTC (permalink / raw) To: Xie Yisheng Cc: akpm, guohanjun, linux-mm, linux-kernel, will.deacon, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi On Mon 22-08-16 21:20:03, Xie Yisheng wrote: > Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. > No functional change with this patch. > > Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> Acked-by: Michal Hocko <mhocko@suse.com> > --- > arch/s390/Kconfig | 1 + > arch/x86/Kconfig | 1 + > fs/Kconfig | 3 +++ > mm/hugetlb.c | 2 +- > 4 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index e751fe2..a8c8fa3 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -72,6 +72,7 @@ config S390 > select ARCH_HAS_DEVMEM_IS_ALLOWED > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_GCOV_PROFILE_ALL > + select ARCH_HAS_GIGANTIC_PAGE > select ARCH_HAS_KCOV > select ARCH_HAS_SG_CHAIN > select ARCH_HAVE_NMI_SAFE_CMPXCHG > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index c580d8c..2fdc300 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -29,6 +29,7 @@ config X86 > select ARCH_HAS_ELF_RANDOMIZE > select ARCH_HAS_FAST_MULTIPLIER > select ARCH_HAS_GCOV_PROFILE_ALL > + select ARCH_HAS_GIGANTIC_PAGE if X86_64 > select ARCH_HAS_KCOV if X86_64 > select ARCH_HAS_PMEM_API if X86_64 > select ARCH_HAS_MMIO_FLUSH > diff --git a/fs/Kconfig b/fs/Kconfig > index 2bc7ad7..b938205 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -199,6 +199,9 @@ config HUGETLBFS > config HUGETLB_PAGE > def_bool HUGETLBFS > > +config ARCH_HAS_GIGANTIC_PAGE > + bool > + > source "fs/configfs/Kconfig" > source "fs/efivarfs/Kconfig" > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 87e11d8..8488dcc 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) > ((node = hstate_next_node_to_free(hs, mask)) || 1); \ > 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_CMA)) > static void destroy_compound_gigantic_page(struct page *page, > -- > 1.7.12.4 > -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 21+ messages in thread
* [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE 2016-08-22 13:20 ` Xie Yisheng (?) @ 2016-09-08 9:55 ` Naoya Horiguchi -1 siblings, 0 replies; 21+ messages in thread From: Naoya Horiguchi @ 2016-09-08 9:55 UTC (permalink / raw) To: linux-arm-kernel On Mon, Aug 22, 2016 at 09:20:03PM +0800, Xie Yisheng wrote: > Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. > No functional change with this patch. > > Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE @ 2016-09-08 9:55 ` Naoya Horiguchi 0 siblings, 0 replies; 21+ messages in thread From: Naoya Horiguchi @ 2016-09-08 9:55 UTC (permalink / raw) To: Xie Yisheng Cc: akpm@linux-foundation.org, mhocko@kernel.org, guohanjun@huawei.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, will.deacon@arm.com, mhocko@suse.com, dave.hansen@intel.com, sudeep.holla@arm.com, catalin.marinas@arm.com, mark.rutland@arm.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, mike.kravetz@oracle.com On Mon, Aug 22, 2016 at 09:20:03PM +0800, Xie Yisheng wrote: > Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. > No functional change with this patch. > > Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE @ 2016-09-08 9:55 ` Naoya Horiguchi 0 siblings, 0 replies; 21+ messages in thread From: Naoya Horiguchi @ 2016-09-08 9:55 UTC (permalink / raw) To: Xie Yisheng Cc: akpm@linux-foundation.org, mhocko@kernel.org, guohanjun@huawei.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, will.deacon@arm.com, mhocko@suse.com, dave.hansen@intel.com, sudeep.holla@arm.com, catalin.marinas@arm.com, mark.rutland@arm.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, mike.kravetz@oracle.com On Mon, Aug 22, 2016 at 09:20:03PM +0800, Xie Yisheng wrote: > Avoid making ifdef get pretty unwieldy if many ARCHs support gigantic page. > No functional change with this patch. > > Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 21+ messages in thread
* [RFC PATCH v3 2/2] arm64 Kconfig: Select gigantic page 2016-08-22 13:20 ` Xie Yisheng (?) @ 2016-08-22 13:20 ` Xie Yisheng -1 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: linux-arm-kernel Arm64 supports gigantic page after commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") however, it can only be allocated at boottime and can't be freed. This patch selects ARCH_HAS_GIGANTIC_PAGE to make gigantic pages can be allocated and freed at runtime for arch arm64. Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> --- arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index bc3f00f..92217f6 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -9,6 +9,7 @@ config ARM64 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_SG_CHAIN select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST -- 1.7.12.4 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC PATCH v3 2/2] arm64 Kconfig: Select gigantic page @ 2016-08-22 13:20 ` Xie Yisheng 0 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: akpm, mhocko Cc: guohanjun, linux-mm, linux-kernel, will.deacon, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Arm64 supports gigantic page after commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") however, it can only be allocated at boottime and can't be freed. This patch selects ARCH_HAS_GIGANTIC_PAGE to make gigantic pages can be allocated and freed at runtime for arch arm64. Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> --- arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index bc3f00f..92217f6 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -9,6 +9,7 @@ config ARM64 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_SG_CHAIN select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST -- 1.7.12.4 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC PATCH v3 2/2] arm64 Kconfig: Select gigantic page @ 2016-08-22 13:20 ` Xie Yisheng 0 siblings, 0 replies; 21+ messages in thread From: Xie Yisheng @ 2016-08-22 13:20 UTC (permalink / raw) To: akpm, mhocko Cc: guohanjun, linux-mm, linux-kernel, will.deacon, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Arm64 supports gigantic page after commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") however, it can only be allocated at boottime and can't be freed. This patch selects ARCH_HAS_GIGANTIC_PAGE to make gigantic pages can be allocated and freed at runtime for arch arm64. Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Xie Yisheng <xieyisheng1@huawei.com> --- arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index bc3f00f..92217f6 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -9,6 +9,7 @@ config ARM64 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_GCOV_PROFILE_ALL + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_SG_CHAIN select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST -- 1.7.12.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page 2016-08-22 13:20 ` Xie Yisheng (?) @ 2016-08-26 10:26 ` Will Deacon -1 siblings, 0 replies; 21+ messages in thread From: Will Deacon @ 2016-08-26 10:26 UTC (permalink / raw) To: linux-arm-kernel On Mon, Aug 22, 2016 at 09:20:02PM +0800, Xie Yisheng wrote: > Arm64 supports different size of gigantic page which can be seen from: > commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") > commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") > > So I tried to use this function by adding hugepagesz=1G in kernel > parameters, with CONFIG_CMA=y. However, when I > echo xx > \ > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages > it failed with the following info: > -bash: echo: write error: Invalid argument > > This is a v3 patchset which make gigantic page can be > allocated and freed at runtime for arch arm64, > with CONFIG_CMA=y or other related configs is enabled. > > You can see the former discussions at: > https://lkml.org/lkml/2016/8/18/310 > https://lkml.org/lkml/2016/8/21/410 > > Xie Yisheng (2): > mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE > arm64 Kconfig: Select gigantic page > > arch/arm64/Kconfig | 1 + > arch/s390/Kconfig | 1 + > arch/x86/Kconfig | 1 + > fs/Kconfig | 3 ++++ > mm/hugetlb.c | 2 +- > 5 files changed, 7 insertions(+), 1 deletion(-) I assume you plan to merge this via -mm/akpm, given that Catalin has acked the arm64 part? Will ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page @ 2016-08-26 10:26 ` Will Deacon 0 siblings, 0 replies; 21+ messages in thread From: Will Deacon @ 2016-08-26 10:26 UTC (permalink / raw) To: Xie Yisheng Cc: akpm, mhocko, guohanjun, linux-mm, linux-kernel, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi On Mon, Aug 22, 2016 at 09:20:02PM +0800, Xie Yisheng wrote: > Arm64 supports different size of gigantic page which can be seen from: > commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") > commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") > > So I tried to use this function by adding hugepagesz=1G in kernel > parameters, with CONFIG_CMA=y. However, when I > echo xx > \ > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages > it failed with the following info: > -bash: echo: write error: Invalid argument > > This is a v3 patchset which make gigantic page can be > allocated and freed at runtime for arch arm64, > with CONFIG_CMA=y or other related configs is enabled. > > You can see the former discussions at: > https://lkml.org/lkml/2016/8/18/310 > https://lkml.org/lkml/2016/8/21/410 > > Xie Yisheng (2): > mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE > arm64 Kconfig: Select gigantic page > > arch/arm64/Kconfig | 1 + > arch/s390/Kconfig | 1 + > arch/x86/Kconfig | 1 + > fs/Kconfig | 3 ++++ > mm/hugetlb.c | 2 +- > 5 files changed, 7 insertions(+), 1 deletion(-) I assume you plan to merge this via -mm/akpm, given that Catalin has acked the arm64 part? Will ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page @ 2016-08-26 10:26 ` Will Deacon 0 siblings, 0 replies; 21+ messages in thread From: Will Deacon @ 2016-08-26 10:26 UTC (permalink / raw) To: Xie Yisheng Cc: akpm, mhocko, guohanjun, linux-mm, linux-kernel, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi On Mon, Aug 22, 2016 at 09:20:02PM +0800, Xie Yisheng wrote: > Arm64 supports different size of gigantic page which can be seen from: > commit 084bd29810a5 ("ARM64: mm: HugeTLB support.") > commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") > > So I tried to use this function by adding hugepagesz=1G in kernel > parameters, with CONFIG_CMA=y. However, when I > echo xx > \ > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages > it failed with the following info: > -bash: echo: write error: Invalid argument > > This is a v3 patchset which make gigantic page can be > allocated and freed at runtime for arch arm64, > with CONFIG_CMA=y or other related configs is enabled. > > You can see the former discussions at: > https://lkml.org/lkml/2016/8/18/310 > https://lkml.org/lkml/2016/8/21/410 > > Xie Yisheng (2): > mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE > arm64 Kconfig: Select gigantic page > > arch/arm64/Kconfig | 1 + > arch/s390/Kconfig | 1 + > arch/x86/Kconfig | 1 + > fs/Kconfig | 3 ++++ > mm/hugetlb.c | 2 +- > 5 files changed, 7 insertions(+), 1 deletion(-) I assume you plan to merge this via -mm/akpm, given that Catalin has acked the arm64 part? Will -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 21+ messages in thread
* [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page 2016-08-26 10:26 ` Will Deacon (?) @ 2016-08-27 9:45 ` Yisheng Xie -1 siblings, 0 replies; 21+ messages in thread From: Yisheng Xie @ 2016-08-27 9:45 UTC (permalink / raw) To: linux-arm-kernel Hi Andrew, Can this patchset be merged? Or have any other comments? Thanks Xie Yisheng On 2016/8/26 18:26, Will Deacon wrote: > On Mon, Aug 22, 2016 at 09:20:02PM +0800, Xie Yisheng wrote: >> >> Xie Yisheng (2): >> mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE >> arm64 Kconfig: Select gigantic page >> > > I assume you plan to merge this via -mm/akpm, given that Catalin has > acked the arm64 part? > Yes, however, it seems still not merged right now. > Will > > . > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page @ 2016-08-27 9:45 ` Yisheng Xie 0 siblings, 0 replies; 21+ messages in thread From: Yisheng Xie @ 2016-08-27 9:45 UTC (permalink / raw) To: Will Deacon Cc: akpm, mhocko, guohanjun, linux-mm, linux-kernel, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Hi Andrew, Can this patchset be merged? Or have any other comments? Thanks Xie Yisheng On 2016/8/26 18:26, Will Deacon wrote: > On Mon, Aug 22, 2016 at 09:20:02PM +0800, Xie Yisheng wrote: >> >> Xie Yisheng (2): >> mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE >> arm64 Kconfig: Select gigantic page >> > > I assume you plan to merge this via -mm/akpm, given that Catalin has > acked the arm64 part? > Yes, however, it seems still not merged right now. > Will > > . > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page @ 2016-08-27 9:45 ` Yisheng Xie 0 siblings, 0 replies; 21+ messages in thread From: Yisheng Xie @ 2016-08-27 9:45 UTC (permalink / raw) To: Will Deacon Cc: akpm, mhocko, guohanjun, linux-mm, linux-kernel, mhocko, dave.hansen, sudeep.holla, catalin.marinas, mark.rutland, robh+dt, linux-arm-kernel, mike.kravetz, n-horiguchi Hi Andrew, Can this patchset be merged? Or have any other comments? Thanks Xie Yisheng On 2016/8/26 18:26, Will Deacon wrote: > On Mon, Aug 22, 2016 at 09:20:02PM +0800, Xie Yisheng wrote: >> >> Xie Yisheng (2): >> mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE >> arm64 Kconfig: Select gigantic page >> > > I assume you plan to merge this via -mm/akpm, given that Catalin has > acked the arm64 part? > Yes, however, it seems still not merged right now. > Will > > . > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2016-09-08 9:57 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-08-22 13:20 [RFC PATCH v3 0/2] arm64/hugetlb: enable gigantic page Xie Yisheng 2016-08-22 13:20 ` Xie Yisheng 2016-08-22 13:20 ` Xie Yisheng 2016-08-22 13:20 ` [RFC PATCH v3 1/2] mm/hugetlb: Introduce ARCH_HAS_GIGANTIC_PAGE Xie Yisheng 2016-08-22 13:20 ` Xie Yisheng 2016-08-22 13:20 ` Xie Yisheng 2016-08-22 13:44 ` Michal Hocko 2016-08-22 13:44 ` Michal Hocko 2016-08-22 13:44 ` Michal Hocko 2016-09-08 9:55 ` Naoya Horiguchi 2016-09-08 9:55 ` Naoya Horiguchi 2016-09-08 9:55 ` Naoya Horiguchi 2016-08-22 13:20 ` [RFC PATCH v3 2/2] arm64 Kconfig: Select gigantic page Xie Yisheng 2016-08-22 13:20 ` Xie Yisheng 2016-08-22 13:20 ` Xie Yisheng 2016-08-26 10:26 ` [RFC PATCH v3 0/2] arm64/hugetlb: enable " Will Deacon 2016-08-26 10:26 ` Will Deacon 2016-08-26 10:26 ` Will Deacon 2016-08-27 9:45 ` Yisheng Xie 2016-08-27 9:45 ` Yisheng Xie 2016-08-27 9:45 ` Yisheng Xie
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.