Message ID | 20210525001302.27779-1-rdunlap@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [-next] riscv: TRANSPARENT_HUGEPAGE: depends on MMU | expand |
On Mon, May 24, 2021 at 05:13:02PM -0700, Randy Dunlap wrote: > Fix a Kconfig warning and many build errors: > > WARNING: unmet direct dependencies detected for COMPACTION > Depends on [n]: MMU [=n] > Selected by [y]: > - TRANSPARENT_HUGEPAGE [=y] && HAVE_ARCH_TRANSPARENT_HUGEPAGE [=y] > > and the subseqent thousands of build errors and warnings. > > Fixes: e88b333142e4 ("riscv: mm: add THP support on 64-bit") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Cc: Paul Walmsley <paul.walmsley@sifive.com> > Cc: Palmer Dabbelt <palmer@dabbelt.com> > Cc: Albert Ou <aou@eecs.berkeley.edu> > Cc: linux-riscv@lists.infradead.org > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Nanyong Sun <sunnanyong@huawei.com> Acked-by: Mike Rapoport <rppt@linux.ibm.com> > --- > I really think that mm/Kconfig should have "depends on MMU" for > TRANSPARENT_HUGEPAGE, but commit 15626062f4a9 from 2012 > ("thp, x86: introduce HAVE_ARCH_TRANSPARENT_HUGEPAGE") thought > differently. I.e., mm/Kconfig should be protecting all arches > against this Kconfig problem. We could diff --git a/mm/Kconfig b/mm/Kconfig index 02d44e3420f5..85bc8bf32e7b 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -403,7 +403,7 @@ config NOMMU_INITIAL_TRIM_EXCESS config TRANSPARENT_HUGEPAGE bool "Transparent Hugepage Support" - depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE + depends on MMU && HAVE_ARCH_TRANSPARENT_HUGEPAGE select COMPACTION select XARRAY_MULTI help but in a sense HAVE_ARCH_TRANSPARENT_HUGEPAGE should imply that MMU is selected :) > arch/riscv/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- linux-next-20210524.orig/arch/riscv/Kconfig > +++ linux-next-20210524/arch/riscv/Kconfig > @@ -106,7 +106,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > - select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT > + select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT >
On 5/25/21 3:33 AM, Mike Rapoport wrote: > On Mon, May 24, 2021 at 05:13:02PM -0700, Randy Dunlap wrote: >> Fix a Kconfig warning and many build errors: >> >> WARNING: unmet direct dependencies detected for COMPACTION >> Depends on [n]: MMU [=n] >> Selected by [y]: >> - TRANSPARENT_HUGEPAGE [=y] && HAVE_ARCH_TRANSPARENT_HUGEPAGE [=y] >> >> and the subseqent thousands of build errors and warnings. >> >> Fixes: e88b333142e4 ("riscv: mm: add THP support on 64-bit") >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> >> Cc: Paul Walmsley <paul.walmsley@sifive.com> >> Cc: Palmer Dabbelt <palmer@dabbelt.com> >> Cc: Albert Ou <aou@eecs.berkeley.edu> >> Cc: linux-riscv@lists.infradead.org >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Cc: Nanyong Sun <sunnanyong@huawei.com> > > Acked-by: Mike Rapoport <rppt@linux.ibm.com> > >> --- >> I really think that mm/Kconfig should have "depends on MMU" for >> TRANSPARENT_HUGEPAGE, but commit 15626062f4a9 from 2012 >> ("thp, x86: introduce HAVE_ARCH_TRANSPARENT_HUGEPAGE") thought >> differently. I.e., mm/Kconfig should be protecting all arches >> against this Kconfig problem. > > We could > > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..85bc8bf32e7b 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -403,7 +403,7 @@ config NOMMU_INITIAL_TRIM_EXCESS > > config TRANSPARENT_HUGEPAGE > bool "Transparent Hugepage Support" > - depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE > + depends on MMU && HAVE_ARCH_TRANSPARENT_HUGEPAGE > select COMPACTION > select XARRAY_MULTI > help > > but in a sense HAVE_ARCH_TRANSPARENT_HUGEPAGE should imply that MMU is > selected :) Yes, I had this patch before the one that I sent but decided against it based on history. >> arch/riscv/Kconfig | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> --- linux-next-20210524.orig/arch/riscv/Kconfig >> +++ linux-next-20210524/arch/riscv/Kconfig >> @@ -106,7 +106,7 @@ config RISCV >> select SYSCTL_EXCEPTION_TRACE >> select THREAD_INFO_IN_TASK >> select UACCESS_MEMCPY if !MMU >> - select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT >> + select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU >> >> config ARCH_MMAP_RND_BITS_MIN >> default 18 if 64BIT >> > thanks.
On Tue, 25 May 2021 08:40:10 PDT (-0700), rdunlap@infradead.org wrote: > On 5/25/21 3:33 AM, Mike Rapoport wrote: >> On Mon, May 24, 2021 at 05:13:02PM -0700, Randy Dunlap wrote: >>> Fix a Kconfig warning and many build errors: >>> >>> WARNING: unmet direct dependencies detected for COMPACTION >>> Depends on [n]: MMU [=n] >>> Selected by [y]: >>> - TRANSPARENT_HUGEPAGE [=y] && HAVE_ARCH_TRANSPARENT_HUGEPAGE [=y] >>> >>> and the subseqent thousands of build errors and warnings. >>> >>> Fixes: e88b333142e4 ("riscv: mm: add THP support on 64-bit") >>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> >>> Cc: Paul Walmsley <paul.walmsley@sifive.com> >>> Cc: Palmer Dabbelt <palmer@dabbelt.com> >>> Cc: Albert Ou <aou@eecs.berkeley.edu> >>> Cc: linux-riscv@lists.infradead.org >>> Cc: Andrew Morton <akpm@linux-foundation.org> >>> Cc: Nanyong Sun <sunnanyong@huawei.com> >> >> Acked-by: Mike Rapoport <rppt@linux.ibm.com> >> >>> --- >>> I really think that mm/Kconfig should have "depends on MMU" for >>> TRANSPARENT_HUGEPAGE, but commit 15626062f4a9 from 2012 >>> ("thp, x86: introduce HAVE_ARCH_TRANSPARENT_HUGEPAGE") thought >>> differently. I.e., mm/Kconfig should be protecting all arches >>> against this Kconfig problem. >> >> We could >> >> diff --git a/mm/Kconfig b/mm/Kconfig >> index 02d44e3420f5..85bc8bf32e7b 100644 >> --- a/mm/Kconfig >> +++ b/mm/Kconfig >> @@ -403,7 +403,7 @@ config NOMMU_INITIAL_TRIM_EXCESS >> >> config TRANSPARENT_HUGEPAGE >> bool "Transparent Hugepage Support" >> - depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE >> + depends on MMU && HAVE_ARCH_TRANSPARENT_HUGEPAGE >> select COMPACTION >> select XARRAY_MULTI >> help >> >> but in a sense HAVE_ARCH_TRANSPARENT_HUGEPAGE should imply that MMU is >> selected :) > > Yes, I had this patch before the one that I sent but decided against it > based on history. IMO 15626062f4a9 ("thp, x86: introduce HAVE_ARCH_TRANSPARENT_HUGEPAGE") is really saying "the arches that have transparent huge pages are MMU=y, so we don't need the extra check". That seems reasonable as of when the code landed, and while arm has MMU=n and THP it already depends on MMU (via ARM_LPAE, which seems kind of natural there). The generic version seems fine to me, but I'm going to take this one now so we can avoid the build issues. >>> arch/riscv/Kconfig | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> --- linux-next-20210524.orig/arch/riscv/Kconfig >>> +++ linux-next-20210524/arch/riscv/Kconfig >>> @@ -106,7 +106,7 @@ config RISCV >>> select SYSCTL_EXCEPTION_TRACE >>> select THREAD_INFO_IN_TASK >>> select UACCESS_MEMCPY if !MMU >>> - select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT >>> + select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU >>> >>> config ARCH_MMAP_RND_BITS_MIN >>> default 18 if 64BIT >>> >> > > thanks.
--- linux-next-20210524.orig/arch/riscv/Kconfig +++ linux-next-20210524/arch/riscv/Kconfig @@ -106,7 +106,7 @@ config RISCV select SYSCTL_EXCEPTION_TRACE select THREAD_INFO_IN_TASK select UACCESS_MEMCPY if !MMU - select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT + select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU config ARCH_MMAP_RND_BITS_MIN default 18 if 64BIT
Fix a Kconfig warning and many build errors: WARNING: unmet direct dependencies detected for COMPACTION Depends on [n]: MMU [=n] Selected by [y]: - TRANSPARENT_HUGEPAGE [=y] && HAVE_ARCH_TRANSPARENT_HUGEPAGE [=y] and the subseqent thousands of build errors and warnings. Fixes: e88b333142e4 ("riscv: mm: add THP support on 64-bit") Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: linux-riscv@lists.infradead.org Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Nanyong Sun <sunnanyong@huawei.com> --- I really think that mm/Kconfig should have "depends on MMU" for TRANSPARENT_HUGEPAGE, but commit 15626062f4a9 from 2012 ("thp, x86: introduce HAVE_ARCH_TRANSPARENT_HUGEPAGE") thought differently. I.e., mm/Kconfig should be protecting all arches against this Kconfig problem. arch/riscv/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)