tree:
https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
kvm-arm64/pmu-debug-fixes-5.11
head: 2aa1837246b4399ed85dba448b8dd19b48b95573
commit: 6e73e2ebd0fe89e8ea4c97d37809cf4b05ca7cbe [6/7] KVM: arm64: Upgrade PMU support to
ARMv8.4
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
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
#
https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/com...
git remote add arm-platforms
https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
git fetch --no-tags arm-platforms kvm-arm64/pmu-debug-fixes-5.11
git checkout 6e73e2ebd0fe89e8ea4c97d37809cf4b05ca7cbe
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
arch/arm64/kvm/sys_regs.c: In function 'read_id_reg':
> arch/arm64/kvm/sys_regs.c:1063:38: error:
'ID_DFR0_PERFMON_8_4' undeclared (first use in this function); did you mean
'ID_DFR0_PERFMON_8_1'?
1063 | kvm_vcpu_has_pmu(vcpu) ?
ID_DFR0_PERFMON_8_4 : 0);
| ^~~~~~~~~~~~~~~~~~~
| ID_DFR0_PERFMON_8_1
arch/arm64/kvm/sys_regs.c:1063:38: note: each undeclared identifier is reported only
once for each function it appears in
vim +1063 arch/arm64/kvm/sys_regs.c
1021
1022 /* Read a sanitised cpufeature ID register by sys_reg_desc */
1023 static u64 read_id_reg(const struct kvm_vcpu *vcpu,
1024 struct sys_reg_desc const *r, bool raz)
1025 {
1026 u32 id = sys_reg((u32)r->Op0, (u32)r->Op1,
1027 (u32)r->CRn, (u32)r->CRm, (u32)r->Op2);
1028 u64 val = raz ? 0 : read_sanitised_ftr_reg(id);
1029
1030 switch (id) {
1031 case SYS_ID_AA64PFR0_EL1:
1032 if (!vcpu_has_sve(vcpu))
1033 val &= ~FEATURE(ID_AA64PFR0_SVE);
1034 val &= ~FEATURE(ID_AA64PFR0_AMU);
1035 val &= ~FEATURE(ID_AA64PFR0_CSV2);
1036 val |= FIELD_PREP(FEATURE(ID_AA64PFR0_CSV2),
(u64)vcpu->kvm->arch.pfr0_csv2);
1037 val &= ~FEATURE(ID_AA64PFR0_CSV3);
1038 val |= FIELD_PREP(FEATURE(ID_AA64PFR0_CSV3),
(u64)vcpu->kvm->arch.pfr0_csv3);
1039 break;
1040 case SYS_ID_AA64PFR1_EL1:
1041 val &= ~FEATURE(ID_AA64PFR1_MTE);
1042 break;
1043 case SYS_ID_AA64ISAR1_EL1:
1044 if (!vcpu_has_ptrauth(vcpu))
1045 val &= ~(FEATURE(ID_AA64ISAR1_APA) |
1046 FEATURE(ID_AA64ISAR1_API) |
1047 FEATURE(ID_AA64ISAR1_GPA) |
1048 FEATURE(ID_AA64ISAR1_GPI));
1049 break;
1050 case SYS_ID_AA64DFR0_EL1:
1051 /* Limit debug to ARMv8.0 */
1052 val &= ~FEATURE(ID_AA64DFR0_DEBUGVER);
1053 val |= FIELD_PREP(FEATURE(ID_AA64DFR0_DEBUGVER), 6);
1054 /* Limit guests to PMUv3 for ARMv8.4 */
1055 val = cpuid_feature_cap_perfmon_field(val,
1056 ID_AA64DFR0_PMUVER_SHIFT,
1057 kvm_vcpu_has_pmu(vcpu) ? ID_AA64DFR0_PMUVER_8_4 : 0);
1058 break;
1059 case SYS_ID_DFR0_EL1:
1060 /* Limit guests to PMUv3 for ARMv8.4 */
1061 val = cpuid_feature_cap_perfmon_field(val,
1062 ID_DFR0_PERFMON_SHIFT,
1063 kvm_vcpu_has_pmu(vcpu) ? ID_DFR0_PERFMON_8_4 : 0);
1064 break;
1065 }
1066
1067 return val;
1068 }
1069
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org