Re: next: arm64: build/gcc-12-lkftconfig-64k_page_size - error: call to '__compiletime_assert_494' declared with attribute error: BUILD_BUG_ON failed: (((16 - 3) * (4 - (2)) + 3)-16) > 10

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 19, 2023 at 04:06:35PM +0530, Naresh Kamboju wrote:
> On Wed, 17 May 2023 at 18:56, Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
> > Following arm64 builds failed on Linux next-20230517.
> >
> >  - build/gcc-12-lkftconfig-64k_page_size
> >  - build/gcc-11-lkftconfig-64k_page_size
> >
> > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> >
> > Build log:
> > ======
> > include/asm-generic/div64.h:46:27: warning: conversion from 'long
> > unsigned int' to 'uint32_t' {aka 'unsigned int'} changes value from
> > '4398046511104' to '0' [-Woverflow]
> >    46 |         uint32_t __base = (base);                               \
> >       |                           ^
> > include/linux/math.h:40:44: note: in expansion of macro 'do_div'
> >    40 |         ({ unsigned long long _tmp = (ll); do_div(_tmp, d); _tmp; })
> >       |                                            ^~~~~~
> > include/linux/math.h:43:9: note: in expansion of macro 'DIV_ROUND_DOWN_ULL'
> >    43 |         DIV_ROUND_DOWN_ULL((unsigned long long)(ll) + (d) - 1, (d))
> >       |         ^~~~~~~~~~~~~~~~~~
> > arch/arm64/kvm/mmu.c:95:22: note: in expansion of macro 'DIV_ROUND_UP_ULL'
> >    95 |                 n += DIV_ROUND_UP_ULL(range, PUD_SIZE);
> >       |                      ^~~~~~~~~~~~~~~~
> > In file included from <command-line>:
> > mm/huge_memory.c: In function 'hugepage_init':
> > include/linux/compiler_types.h:397:45: error: call to
> > '__compiletime_assert_494' declared with attribute error: BUILD_BUG_ON
> > failed: (((16 - 3) * (4 - (2)) + 3)-16) > 10
> >   397 |         _compiletime_assert(condition, msg,
> > __compiletime_assert_, __COUNTER__)
> >       |                                             ^
> > include/linux/compiler_types.h:378:25: note: in definition of macro
> > '__compiletime_assert'
> >   378 |                         prefix ## suffix();
> >          \
> >       |                         ^~~~~~
> > include/linux/compiler_types.h:397:9: note: in expansion of macro
> > '_compiletime_assert'
> >   397 |         _compiletime_assert(condition, msg,
> > __compiletime_assert_, __COUNTER__)
> >       |         ^~~~~~~~~~~~~~~~~~~
> > include/linux/build_bug.h:39:37: note: in expansion of macro
> > 'compiletime_assert'
> >    39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> >       |                                     ^~~~~~~~~~~~~~~~~~
> > include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
> >    50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
> >       |         ^~~~~~~~~~~~~~~~
> > include/linux/bug.h:24:25: note: in expansion of macro 'BUILD_BUG_ON'
> >    24 |                         BUILD_BUG_ON(cond);             \
> >       |                         ^~~~~~~~~~~~
> > mm/huge_memory.c:470:9: note: in expansion of macro 'MAYBE_BUILD_BUG_ON'
> >   470 |         MAYBE_BUILD_BUG_ON(HPAGE_PMD_ORDER > MAX_ORDER);
> >       |         ^~~~~~~~~~~~~~~~~~
> > make[3]: *** [scripts/Makefile.build:252: mm/huge_memory.o] Error 1
> 
> Linux next 20230517 arm64 64k page size build failed.
> 
>   - CONFIG_ARM64_64K_PAGES=y
> 
> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> 
> Anders bisected and found the following is the first bad commit.
> 
> commit fd2d1cb8c5454888f67aba4c6218e30106862070
> Author: Catalin Marinas <catalin.marinas@xxxxxxx>
> Date:   Wed May 3 13:33:42 2023 +0100
> 
>     arm64: Make the ARCH_FORCE_MAX_ORDER config input prompt unconditional

We are dropping this commit for now but the problem is still there with
EXPERT enabled.

The problem is that we start with ARCH_FORCE_MAX_ORDER of 10 in
defconfig and we then change the page size to 64K but this value is no
longer valid (only 13 works for this page size).

I'll send a patch dropping the config description entirely, unless there
are some strong requirements to have the ranges back.

-- 
Catalin



[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux