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