Re: [PATCH v3 5/7] perf: arm_pmuv3: Add pmuv3_event_implemented()
From: kernel test robot
Date: Sun Oct 25 2026 - 13:06:24 EST
Hi Amir,
kernel test robot noticed the following build errors:
[auto build test ERROR on 343cfcbb3ecfdb80aa576a428cfa3b65ad783842]
url: https://github.com/intel-lab-lkp/linux/commits/Amir-Ayupov/coresight-etm4x-Fix-event-count-decoding/20261024-233901
base: 343cfcbb3ecfdb80aa576a428cfa3b65ad783842
patch link: https://lore.kernel.org/r/cd3e622681f7254216b0488f09d2cb2d91a2d8ca.1792907333.git.aaupov%40fb.com
patch subject: [PATCH v3 5/7] perf: arm_pmuv3: Add pmuv3_event_implemented()
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20261026/202610260043.uPhMX80G-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 16.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261026/202610260043.uPhMX80G-lkp@xxxxxxxxx/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610260043.uPhMX80G-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
In file included from include/kvm/arm_pmu.h:11,
from arch/arm64/include/asm/kvm_host.h:38,
from arch/arm64/include/asm/arm_pmuv3.h:9,
from arch/arm64/kernel/cpufeature.c:80:
include/linux/perf/arm_pmuv3.h: In function 'pmuv3_event_implemented':
>> include/linux/perf/arm_pmuv3.h:333:26: error: implicit declaration of function 'pmuv3_implemented'; did you mean 'pmuv3_event_implemented'? [-Wimplicit-function-declaration]
333 | if (id >= 64 || !pmuv3_implemented(read_pmuver()))
| ^~~~~~~~~~~~~~~~~
| pmuv3_event_implemented
>> include/linux/perf/arm_pmuv3.h:333:44: error: implicit declaration of function 'read_pmuver' [-Wimplicit-function-declaration]
333 | if (id >= 64 || !pmuv3_implemented(read_pmuver()))
| ^~~~~~~~~~~
>> include/linux/perf/arm_pmuv3.h:336:28: error: implicit declaration of function 'read_pmceid0' [-Wimplicit-function-declaration]
336 | pmceid = id < 32 ? read_pmceid0() : read_pmceid1();
| ^~~~~~~~~~~~
>> include/linux/perf/arm_pmuv3.h:336:45: error: implicit declaration of function 'read_pmceid1' [-Wimplicit-function-declaration]
336 | pmceid = id < 32 ? read_pmceid0() : read_pmceid1();
| ^~~~~~~~~~~~
arch/arm64/include/asm/arm_pmuv3.h: At top level:
>> arch/arm64/include/asm/arm_pmuv3.h:49:19: error: conflicting types for 'read_pmuver'; have 'u32(void)' {aka 'unsigned int(void)'}
49 | static inline u32 read_pmuver(void)
| ^~~~~~~~~~~
include/linux/perf/arm_pmuv3.h:333:44: note: previous implicit declaration of 'read_pmuver' with type 'int()'
333 | if (id >= 64 || !pmuv3_implemented(read_pmuver()))
| ^~~~~~~~~~~
>> arch/arm64/include/asm/arm_pmuv3.h:160:19: error: conflicting types for 'read_pmceid0'; have 'u64(void)' {aka 'long long unsigned int(void)'}
160 | static inline u64 read_pmceid0(void)
| ^~~~~~~~~~~~
include/linux/perf/arm_pmuv3.h:336:28: note: previous implicit declaration of 'read_pmceid0' with type 'int()'
336 | pmceid = id < 32 ? read_pmceid0() : read_pmceid1();
| ^~~~~~~~~~~~
>> arch/arm64/include/asm/arm_pmuv3.h:165:19: error: conflicting types for 'read_pmceid1'; have 'u64(void)' {aka 'long long unsigned int(void)'}
165 | static inline u64 read_pmceid1(void)
| ^~~~~~~~~~~~
include/linux/perf/arm_pmuv3.h:336:45: note: previous implicit declaration of 'read_pmceid1' with type 'int()'
336 | pmceid = id < 32 ? read_pmceid0() : read_pmceid1();
| ^~~~~~~~~~~~
>> arch/arm64/include/asm/arm_pmuv3.h:170:20: error: conflicting types for 'pmuv3_implemented'; have 'bool(int)' {aka '_Bool(int)'}
170 | static inline bool pmuv3_implemented(int pmuver)
| ^~~~~~~~~~~~~~~~~
include/linux/perf/arm_pmuv3.h:333:26: note: previous implicit declaration of 'pmuv3_implemented' with type 'int()'
333 | if (id >= 64 || !pmuv3_implemented(read_pmuver()))
| ^~~~~~~~~~~~~~~~~
vim +333 include/linux/perf/arm_pmuv3.h
320
321 /*
322 * Whether this CPU's PMU implements a common event, as reported by
323 * PMCEID{0,1}: events 0x0000-0x003f in bits [31:0], and from PMUv3p1 events
324 * 0x4000-0x403f in bits [63:32], which read as zero before PMUv3p1.
325 * Must run on the CPU whose PMU is queried.
326 */
327 static inline bool pmuv3_event_implemented(u16 event)
328 {
329 bool ext = event >= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
330 u16 id = ext ? event - ARMV8_PMUV3_EXT_COMMON_EVENT_BASE : event;
331 u64 pmceid;
332
> 333 if (id >= 64 || !pmuv3_implemented(read_pmuver()))
334 return false;
335
> 336 pmceid = id < 32 ? read_pmceid0() : read_pmceid1();
337 return pmceid & BIT_ULL(id % 32 + (ext ? 32 : 0));
338 }
339
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki