> On 19-Jul-2020, at 4:47 PM, kernel test robot wrote: > > Hi Athira, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on powerpc/next] > [also build test ERROR on tip/perf/core v5.8-rc5 next-20200717] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch] > > url: https://github.com/0day-ci/linux/commits/Athira-Rajeev/powerpc-perf-Add-support-for-power10-PMU-Hardware/20200717-224353 > base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next > config: powerpc64-randconfig-r024-20200719 (attached as .config) > compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218) > 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 > # install powerpc64 cross compiling tool for clang build > # apt-get install binutils-powerpc64-linux-gnu > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > > All errors (new ones prefixed by >>): > > arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c), > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET' > __do_##name al; \ > ^~~~~~~~~~~~~~ > :221:1: note: expanded from here > __do_insw > ^ > arch/powerpc/include/asm/io.h:542:56: note: expanded from macro '__do_insw' > #define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) > ~~~~~~~~~~~~~~~~~~~~~^ > In file included from arch/powerpc/perf/perf_regs.c:10: > In file included from include/linux/perf_event.h:57: > In file included from include/linux/cgroup.h:26: > In file included from include/linux/kernel_stat.h:9: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:10: > In file included from arch/powerpc/include/asm/hardirq.h:6: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/powerpc/include/asm/io.h:604: > arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c), > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET' > __do_##name al; \ > ^~~~~~~~~~~~~~ > :223:1: note: expanded from here > __do_insl > ^ > arch/powerpc/include/asm/io.h:543:56: note: expanded from macro '__do_insl' > #define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) > ~~~~~~~~~~~~~~~~~~~~~^ > In file included from arch/powerpc/perf/perf_regs.c:10: > In file included from include/linux/perf_event.h:57: > In file included from include/linux/cgroup.h:26: > In file included from include/linux/kernel_stat.h:9: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:10: > In file included from arch/powerpc/include/asm/hardirq.h:6: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/powerpc/include/asm/io.h:604: > arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c), > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET' > __do_##name al; \ > ^~~~~~~~~~~~~~ > :225:1: note: expanded from here > __do_outsb > ^ > arch/powerpc/include/asm/io.h:544:58: note: expanded from macro '__do_outsb' > #define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) > ~~~~~~~~~~~~~~~~~~~~~^ > In file included from arch/powerpc/perf/perf_regs.c:10: > In file included from include/linux/perf_event.h:57: > In file included from include/linux/cgroup.h:26: > In file included from include/linux/kernel_stat.h:9: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:10: > In file included from arch/powerpc/include/asm/hardirq.h:6: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/powerpc/include/asm/io.h:604: > arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c), > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET' > __do_##name al; \ > ^~~~~~~~~~~~~~ > :227:1: note: expanded from here > __do_outsw > ^ > arch/powerpc/include/asm/io.h:545:58: note: expanded from macro '__do_outsw' > #define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) > ~~~~~~~~~~~~~~~~~~~~~^ > In file included from arch/powerpc/perf/perf_regs.c:10: > In file included from include/linux/perf_event.h:57: > In file included from include/linux/cgroup.h:26: > In file included from include/linux/kernel_stat.h:9: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:10: > In file included from arch/powerpc/include/asm/hardirq.h:6: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/powerpc/include/asm/io.h:604: > arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c), > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET' > __do_##name al; \ > ^~~~~~~~~~~~~~ > :229:1: note: expanded from here > __do_outsl > ^ > arch/powerpc/include/asm/io.h:546:58: note: expanded from macro '__do_outsl' > #define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) > ~~~~~~~~~~~~~~~~~~~~~^ >>> arch/powerpc/perf/perf_regs.c:16:5: error: expected identifier or '(' > u64 PERF_REG_EXTENDED_MASK; > ^ > include/linux/perf_regs.h:16:32: note: expanded from macro 'PERF_REG_EXTENDED_MASK' > #define PERF_REG_EXTENDED_MASK 0 > ^ > 12 warnings and 1 error generated. > > vim +16 arch/powerpc/perf/perf_regs.c > > 15 >> 16 u64 PERF_REG_EXTENDED_MASK; > 17 Hi, This patch defines PERF_REG_EXTENDED_MASK in arch/powerpc/include/asm/perf_event_server.h and this header file is included conditionally based on CONFIG_PPC_PERF_CTRS in arch/powerpc/include/asm/perf_event.h. So build breaks happens with config having CONFIG_PERF_EVENTS set and without CONFIG_PPC_PERF_CTRS. This will be fixed by defining PERF_REG_EXTENDED_MASK in perf_event.h as below: — diff --git a/arch/powerpc/include/asm/perf_event.h b/arch/powerpc/include/asm/perf_event.h index eed3954082fa..b1c3a91aa6fa 100644 --- a/arch/powerpc/include/asm/perf_event.h +++ b/arch/powerpc/include/asm/perf_event.h @@ -38,4 +38,6 @@ /* To support perf_regs sier update */ extern bool is_sier_available(void); +extern u64 PERF_REG_EXTENDED_MASK; +#define PERF_REG_EXTENDED_MASK PERF_REG_EXTENDED_MASK #endif diff --git a/arch/powerpc/include/asm/perf_event_server.h b/arch/powerpc/include/asm/perf_event_server.h index bf85d1a0b59e..5d368e81445f 100644 --- a/arch/powerpc/include/asm/perf_event_server.h +++ b/arch/powerpc/include/asm/perf_event_server.h @@ -15,9 +15,6 @@ #define MAX_EVENT_ALTERNATIVES 8 #define MAX_LIMITED_HWCOUNTERS 2 -extern u64 PERF_REG_EXTENDED_MASK; -#define PERF_REG_EXTENDED_MASK PERF_REG_EXTENDED_MASK - struct perf_event; struct mmcr_regs { — We also need this patch by Madhavan Sirinivasan : https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=183203 to solve similar build break with `is_sier_available` Thanks Athira > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org > <.config.gz>