On Sat, Jun 12, 2021, 8:10 AM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
On Sat, 12 Jun 2021 00:08:43 +0800 kernel test robot <lkp@xxxxxxxxx> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: 25fe90f43fa312213b653dc1f12fd2d80f855883
> commit: df2de13a32afec989c0e735beb3bc391b3de1dbd [7435/9209] mm, slub: change run-time assertion in kmalloc_index() to compile-time
> config: sparc-randconfig-r005-20210611 (attached as .config)
> compiler: sparc64-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=df2de13a32afec989c0e735beb3bc391b3de1dbd
> git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> git fetch --no-tags linux-next master
> git checkout df2de13a32afec989c0e735beb3bc391b3de1dbd
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> In file included from <command-line>:
> In function 'kmalloc_index',
> inlined from 'kmalloc_node' at include/linux/slab.h:572:20,
> inlined from 'bpf_map_kmalloc_node.isra.0.part.0' at include/linux/bpf.h:1319:9:
> >> include/linux/compiler_types.h:328:38: error: call to '__compiletime_assert_236' declared with attribute error: unexpected size in kmalloc_index()
> 328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
> | ^
> include/linux/compiler_types.h:309:4: note: in definition of macro '__compiletime_assert'
> 309 | prefix ## suffix(); \
> | ^~~~~~
> include/linux/compiler_types.h:328:2: note: in expansion of macro '_compiletime_assert'
> 328 | _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/slab.h:389:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
> 389 | BUILD_BUG_ON_MSG(1, "unexpected size in kmalloc_index()");
> | ^~~~~~~~~~~~~~~~
>
This log doesn't show which .c file was being compiled at the time.
Can this info be included?
For me, it was kernel/bpf/local_storage.c.
Yes. the file It is kernel/bpf/local_storage.c
I don't see anything wrong with the code. Did this gcc simply screw up
__builtin_constant_p()?
It seems there is false positive when CONFIG_PROFILE_ALL_BRANCHES=y