On Tue 07-02-17 14:14:20, Andrew Morton wrote: > On Wed, 8 Feb 2017 05:54:56 +0800 kbuild test robot <lkp@xxxxxxxxx> wrote: > > > Hi Michal, > > > > [auto build test ERROR on mmotm/master] > > [also build test ERROR on v4.10-rc7 next-20170207] > > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > > > > url: https://github.com/0day-ci/linux/commits/Michal-Hocko/mm-page_alloc-use-static-global-work_struct-for-draining-per-cpu-pages-fix/20170208-050036 > > base: git://git.cmpxchg.org/linux-mmotm.git master > > config: i386-randconfig-x001-201706 (attached as .config) > > compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 > > reproduce: > > # save the attached .config to linux build tree > > make ARCH=i386 > > > > All error/warnings (new ones prefixed by >>): > > > > In file included from include/asm-generic/percpu.h:6:0, > > from arch/x86/include/asm/percpu.h:542, > > from arch/x86/include/asm/preempt.h:5, > > from include/linux/preempt.h:59, > > from include/linux/spinlock.h:50, > > from include/linux/mmzone.h:7, > > from include/linux/gfp.h:5, > > from include/linux/mm.h:9, > > from mm/page_alloc.c:18: > > mm/page_alloc.c: In function 'drain_all_pages': > > >> include/linux/percpu-defs.h:91:33: error: section attribute cannot be specified for local variables > > extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > > ^ > > huh, yes. The DEFINE_PER_CPU() macro is broken. > > If you do > > foo() > { > static DEFINE_PER_CPU(int, bar); > } > > then it won't compile, as described here. It should. > > And if you do > > static DEFINE_PER_CPU(int, bar); > > then you still get global symbols (__pcpu_unique_bar). > > The kernel does the above thing in, umm, 466 places and afaict they're > all broken. If two code sites ever use the same identifier, they'll > get linkage errors. > > huh. Seems hard to fix. Nasty! Unfortunately, I am not familiar with the static pcp code magic to come up with a fix. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>