On 19-Jul-2020, at 4:47 PM, kernel test robot <lkp@intel.com> 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 <lkp@intel.com>

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;                                 \
                  ^~~~~~~~~~~~~~
  <scratch space>: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;                                 \
                  ^~~~~~~~~~~~~~
  <scratch space>: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;                                 \
                  ^~~~~~~~~~~~~~
  <scratch space>: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;                                 \
                  ^~~~~~~~~~~~~~
  <scratch space>: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;                                 \
                  ^~~~~~~~~~~~~~
  <scratch space>: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>