Hi Marc, kernel test robot noticed the following build errors: [auto build test ERROR on kvmarm/next] [also build test ERROR on arm/for-next arm64/for-next/core soc/for-next linus/master arm/fixes v6.5-rc6 next-20230816] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Marc-Zyngier/KVM-arm64-pmu-Resync-EL0-state-on-counter-rotation/20230812-020712 base: https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git next patch link: https://lore.kernel.org/r/20230811180520.131727-1-maz%40kernel.org patch subject: [PATCH] KVM: arm64: pmu: Resync EL0 state on counter rotation config: arm-randconfig-r046-20230817 (https://download.01.org/0day-ci/archive/20230817/202308170409.yogZXrWD-lkp@xxxxxxxxx/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a) reproduce: (https://download.01.org/0day-ci/archive/20230817/202308170409.yogZXrWD-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/202308170409.yogZXrWD-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ drivers/perf/arm_pmuv3.c:148:44: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 148 | [C(DTLB)][C(OP_READ)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_L1D_TLB_RD, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmuv3.h:133:44: note: expanded from macro 'ARMV8_IMPDEF_PERFCTR_L1D_TLB_RD' 133 | #define ARMV8_IMPDEF_PERFCTR_L1D_TLB_RD 0x004E | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ drivers/perf/arm_pmuv3.c:149:45: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 149 | [C(DTLB)][C(OP_WRITE)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_L1D_TLB_WR, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmuv3.h:134:44: note: expanded from macro 'ARMV8_IMPDEF_PERFCTR_L1D_TLB_WR' 134 | #define ARMV8_IMPDEF_PERFCTR_L1D_TLB_WR 0x004F | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ drivers/perf/arm_pmuv3.c:150:42: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 150 | [C(DTLB)][C(OP_READ)][C(RESULT_MISS)] = ARMV8_IMPDEF_PERFCTR_L1D_TLB_REFILL_RD, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmuv3.h:131:50: note: expanded from macro 'ARMV8_IMPDEF_PERFCTR_L1D_TLB_REFILL_RD' 131 | #define ARMV8_IMPDEF_PERFCTR_L1D_TLB_REFILL_RD 0x004C | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ drivers/perf/arm_pmuv3.c:151:43: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 151 | [C(DTLB)][C(OP_WRITE)][C(RESULT_MISS)] = ARMV8_IMPDEF_PERFCTR_L1D_TLB_REFILL_WR, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmuv3.h:132:50: note: expanded from macro 'ARMV8_IMPDEF_PERFCTR_L1D_TLB_REFILL_WR' 132 | #define ARMV8_IMPDEF_PERFCTR_L1D_TLB_REFILL_WR 0x004D | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ drivers/perf/arm_pmuv3.c:153:44: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 153 | [C(NODE)][C(OP_READ)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_RD, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmuv3.h:148:46: note: expanded from macro 'ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_RD' 148 | #define ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_RD 0x0060 | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ drivers/perf/arm_pmuv3.c:154:45: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] 154 | [C(NODE)][C(OP_WRITE)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_WR, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmuv3.h:149:46: note: expanded from macro 'ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_WR' 149 | #define ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_WR 0x0061 | ^~~~~~ drivers/perf/arm_pmuv3.c:141:2: note: previous initialization is here 141 | PERF_CACHE_MAP_ALL_UNSUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:45:31: note: expanded from macro 'PERF_CACHE_MAP_ALL_UNSUPPORTED' 45 | [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ | ^~~~~~~~~~~~~~~~~~~~ include/linux/perf/arm_pmu.h:37:31: note: expanded from macro 'CACHE_OP_UNSUPPORTED' 37 | #define CACHE_OP_UNSUPPORTED 0xFFFF | ^~~~~~ >> drivers/perf/arm_pmuv3.c:776:2: error: call to undeclared function 'kvm_vcpu_pmu_resync_el0'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 776 | kvm_vcpu_pmu_resync_el0(); | ^ 55 warnings and 1 error generated. vim +/kvm_vcpu_pmu_resync_el0 +776 drivers/perf/arm_pmuv3.c 758 759 static void armv8pmu_start(struct arm_pmu *cpu_pmu) 760 { 761 struct perf_event_context *ctx; 762 int nr_user = 0; 763 764 ctx = perf_cpu_task_ctx(); 765 if (ctx) 766 nr_user = ctx->nr_user; 767 768 if (sysctl_perf_user_access && nr_user) 769 armv8pmu_enable_user_access(cpu_pmu); 770 else 771 armv8pmu_disable_user_access(); 772 773 /* Enable all counters */ 774 armv8pmu_pmcr_write(armv8pmu_pmcr_read() | ARMV8_PMU_PMCR_E); 775 > 776 kvm_vcpu_pmu_resync_el0(); 777 } 778 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki