Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751552AbdFFU67 (ORCPT ); Tue, 6 Jun 2017 16:58:59 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:36510 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751247AbdFFU66 (ORCPT ); Tue, 6 Jun 2017 16:58:58 -0400 Subject: Re: [PATCH V2] xen-evtchn: Bind dyn evtchn:qemu-dm interrupt to next online VCPU To: kbuild test robot , Anoob Soman References: <201706070319.CRj1QpwQ%fengguang.wu@intel.com> Cc: kbuild-all@01.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, jgross@suse.com From: Boris Ostrovsky Message-ID: <93dcbf7c-85d3-daca-4c8f-595d7088fa9e@oracle.com> Date: Tue, 6 Jun 2017 16:58:37 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201706070319.CRj1QpwQ%fengguang.wu@intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 12315 Lines: 224 On 06/06/2017 04:02 PM, kbuild test robot wrote: > Hi Anoob, > > [auto build test ERROR on xen-tip/linux-next] > [also build test ERROR on v4.12-rc4 next-20170606] > [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/Anoob-Soman/xen-evtchn-Bind-dyn-evtchn-qemu-dm-interrupt-to-next-online-VCPU/20170607-021300 > base: https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next > config: x86_64-randconfig-x010-201723 (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=x86_64 > > 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:80, > from include/linux/spinlock.h:50, > from include/linux/seqlock.h:35, > from include/linux/time.h:5, > from include/linux/stat.h:18, > from include/linux/module.h:10, > from drivers//xen/evtchn.c:36: > drivers//xen/evtchn.c: In function 'evtchn_bind_interdom_next_vcpu': > include/linux/percpu-defs.h:91:33: error: section attribute cannot be specified for local variables > extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:92:26: error: section attribute cannot be specified for local variables > __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ >>> include/linux/percpu-defs.h:92:26: error: declaration of '__pcpu_unique_bind_last_selected_cpu' with no linkage follows extern declaration > __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:91:33: note: previous declaration of '__pcpu_unique_bind_last_selected_cpu' was here > extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:29: error: section attribute cannot be specified for local variables > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:93:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name; \ > ^~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:29: error: section attribute cannot be specified for local variables > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:95:19: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > __typeof__(type) name > ^~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:29: error: weak declaration of 'bind_last_selected_cpu' must be public > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:95:19: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > __typeof__(type) name > ^~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ >>> drivers//xen/evtchn.c:438:29: error: declaration of 'bind_last_selected_cpu' with no linkage follows extern declaration > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:95:19: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > __typeof__(type) name > ^~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > drivers//xen/evtchn.c:438:29: note: previous declaration of 'bind_last_selected_cpu' was here > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:93:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name; \ > ^~~~ >>> drivers//xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > -- > 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:80, > from include/linux/spinlock.h:50, > from include/linux/seqlock.h:35, > from include/linux/time.h:5, > from include/linux/stat.h:18, > from include/linux/module.h:10, > from drivers/xen/evtchn.c:36: > drivers/xen/evtchn.c: In function 'evtchn_bind_interdom_next_vcpu': > include/linux/percpu-defs.h:91:33: error: section attribute cannot be specified for local variables > extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:92:26: error: section attribute cannot be specified for local variables > __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ >>> include/linux/percpu-defs.h:92:26: error: declaration of '__pcpu_unique_bind_last_selected_cpu' with no linkage follows extern declaration > __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:91:33: note: previous declaration of '__pcpu_unique_bind_last_selected_cpu' was here > extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^ > include/linux/percpu-defs.h:116:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:29: error: section attribute cannot be specified for local variables > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:93:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name; \ > ^~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:29: error: section attribute cannot be specified for local variables > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:95:19: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > __typeof__(type) name > ^~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:29: error: weak declaration of 'bind_last_selected_cpu' must be public > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:95:19: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > __typeof__(type) name > ^~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:29: error: declaration of 'bind_last_selected_cpu' with no linkage follows extern declaration > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:95:19: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > __typeof__(type) name > ^~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > drivers/xen/evtchn.c:438:29: note: previous declaration of 'bind_last_selected_cpu' was here > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^ > include/linux/percpu-defs.h:93:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name; \ > ^~~~ > drivers/xen/evtchn.c:438:9: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(int, bind_last_selected_cpu); > ^~~~~~~~~~~~~~ > > vim +/bind_last_selected_cpu +438 drivers//xen/evtchn.c > > 432 > 433 del_evtchn(u, evtchn); > 434 } > 435 > 436 static void evtchn_bind_interdom_next_vcpu(int evtchn) > 437 { > > 438 static DEFINE_PER_CPU(int, bind_last_selected_cpu); Oh well, so much for my request to move it. So you are going to make it global to the file. Here is the explanation BTW: http://www.spinics.net/lists/linux-mm/msg121626.html CONFIG_DEBUG_FORCE_WEAK_PER_CPU is what trips this. -boris