Re: [vbabka-slab:for-6.1/fit_rcu_head 2/2] mm/slab.h:94:1: error: static_assert failed due to requirement '((__builtin_offsetof(struct slab, counters)) & ((unsigned int)(16) - 1)) == 0' "IS_ALIGNED(offsetof(struct slab, counters), 16)"

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

 



On Sat, Sep 10, 2022 at 01:56:26PM +0200, Vlastimil Babka wrote:
> On 9/10/22 10:33, Hyeonggon Yoo wrote:
> > On Sat, Sep 10, 2022 at 04:05:44PM +0800, kernel test robot wrote:
> >> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/fit_rcu_head
> >> head:   2af0ec317dc8f99f0620af23ff6c288bb6f49be5
> >> commit: 2af0ec317dc8f99f0620af23ff6c288bb6f49be5 [2/2] mm/sl[au]b: rearrange struct slab fields to allow larger rcu_head
> >> config: i386-randconfig-a002 (https://download.01.org/0day-ci/archive/20220910/202209101614.lMCcS0Zj-lkp@xxxxxxxxx/config)
> >> compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
> >> 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/vbabka/slab.git/commit/?id=2af0ec317dc8f99f0620af23ff6c288bb6f49be5
> >>         git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
> >>         git fetch --no-tags vbabka-slab for-6.1/fit_rcu_head
> >>         git checkout 2af0ec317dc8f99f0620af23ff6c288bb6f49be5
> >>         # save the config file
> >>         mkdir build_dir && cp config build_dir/.config
> >>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
> >> 
> >> If you fix the issue, kindly add following tag where applicable
> >> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >> 
> >> All errors (new ones prefixed by >>):
> >> 
> >>    In file included from mm/mempool.c:21:
> >> >> mm/slab.h:94:1: error: static_assert failed due to requirement '((__builtin_offsetof(struct slab, counters)) & ((unsigned int)(16) - 1)) == 0' "IS_ALIGNED(offsetof(struct slab, counters), 16)"
> >>    static_assert(IS_ALIGNED(offsetof(struct slab, counters), 16));
> >>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>    include/linux/build_bug.h:77:34: note: expanded from macro 'static_assert'
> >>    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
> >>                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>    include/linux/build_bug.h:78:41: note: expanded from macro '__static_assert'
> >>    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
> >>                                            ^              ~~~~
> >>    1 error generated.
> >> 
> >> 
> >> vim +94 mm/slab.h
> >> 
> >>     90	
> >>     91	#undef SLAB_MATCH
> >>     92	static_assert(sizeof(struct slab) <= sizeof(struct page));
> >>     93	#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && defined(CONFIG_SLUB)
> >>   > 94	static_assert(IS_ALIGNED(offsetof(struct slab, counters), 16));
> >>     95	#endif
> >>     96	
> > 
> > Ah, it should be sizeof(void *) * 2, instead of 16.
> 
> Oops, I kinda assumed CMPXCHG_DOUBLE is 64bit only thing.
> Wonder why bots didn't catch this in the previous push...

Because with previous patch freelist was quad-word aligned (4*4==16 on 32BIT)
So anyway following 16 byte alignment on both 64/32BIT... ;) 

> >> -- 
> >> 0-DAY CI Kernel Test Service
> >> https://01.org/lkp
> >> 
> > 
> 

-- 
Thanks,
Hyeonggon




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux