Hi Athira, Thank you for the patch! Yet something to improve: [auto build test ERROR on powerpc/next] [also build test ERROR on v5.8-rc6 next-20200723] [cannot apply to mpe/next scottwood/next] [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-Initialize-power10-PMU-registers-in-cpu-setup-routine/20200723-153537 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-defconfig (attached as .config) compiler: powerpc64-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 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): arch/powerpc/kernel/cpu_setup_power.S: Assembler messages: >> arch/powerpc/kernel/cpu_setup_power.S:244: Error: non-constant expression in ".if" statement >> arch/powerpc/kernel/cpu_setup_power.S:244: Error: non-constant expression in ".if" statement >> arch/powerpc/kernel/cpu_setup_power.S:243: Error: unsupported relocation against SPRN_MMCR3 vim +244 arch/powerpc/kernel/cpu_setup_power.S 14 15 /* Entry: r3 = crap, r4 = ptr to cputable entry 16 * 17 * Note that we can be called twice for pseudo-PVRs 18 */ 19 _GLOBAL(__setup_cpu_power7) 20 mflr r11 21 bl __init_hvmode_206 22 mtlr r11 23 beqlr 24 li r0,0 25 mtspr SPRN_LPID,r0 26 LOAD_REG_IMMEDIATE(r0, PCR_MASK) 27 mtspr SPRN_PCR,r0 28 mfspr r3,SPRN_LPCR 29 li r4,(LPCR_LPES1 >> LPCR_LPES_SH) 30 bl __init_LPCR_ISA206 31 mtlr r11 32 blr 33 34 _GLOBAL(__restore_cpu_power7) 35 mflr r11 36 mfmsr r3 37 rldicl. r0,r3,4,63 38 beqlr 39 li r0,0 40 mtspr SPRN_LPID,r0 41 LOAD_REG_IMMEDIATE(r0, PCR_MASK) 42 mtspr SPRN_PCR,r0 43 mfspr r3,SPRN_LPCR 44 li r4,(LPCR_LPES1 >> LPCR_LPES_SH) 45 bl __init_LPCR_ISA206 46 mtlr r11 47 blr 48 49 _GLOBAL(__setup_cpu_power8) 50 mflr r11 51 bl __init_FSCR 52 bl __init_PMU 53 bl __init_PMU_ISA207 54 bl __init_hvmode_206 55 mtlr r11 56 beqlr 57 li r0,0 58 mtspr SPRN_LPID,r0 59 LOAD_REG_IMMEDIATE(r0, PCR_MASK) 60 mtspr SPRN_PCR,r0 61 mfspr r3,SPRN_LPCR 62 ori r3, r3, LPCR_PECEDH 63 li r4,0 /* LPES = 0 */ 64 bl __init_LPCR_ISA206 65 bl __init_HFSCR 66 bl __init_PMU_HV 67 bl __init_PMU_HV_ISA207 68 mtlr r11 69 blr 70 71 _GLOBAL(__restore_cpu_power8) 72 mflr r11 73 bl __init_FSCR 74 bl __init_PMU 75 bl __init_PMU_ISA207 76 mfmsr r3 77 rldicl. r0,r3,4,63 78 mtlr r11 79 beqlr 80 li r0,0 81 mtspr SPRN_LPID,r0 82 LOAD_REG_IMMEDIATE(r0, PCR_MASK) 83 mtspr SPRN_PCR,r0 84 mfspr r3,SPRN_LPCR 85 ori r3, r3, LPCR_PECEDH 86 li r4,0 /* LPES = 0 */ 87 bl __init_LPCR_ISA206 88 bl __init_HFSCR 89 bl __init_PMU_HV 90 bl __init_PMU_HV_ISA207 91 mtlr r11 92 blr 93 94 _GLOBAL(__setup_cpu_power10) 95 mflr r11 96 bl __init_FSCR_power10 97 bl __init_PMU 98 bl __init_PMU_ISA31 99 b 1f 100 101 _GLOBAL(__setup_cpu_power9) 102 mflr r11 103 bl __init_FSCR 104 bl __init_PMU 105 1: bl __init_hvmode_206 106 mtlr r11 107 beqlr 108 li r0,0 109 mtspr SPRN_PSSCR,r0 110 mtspr SPRN_LPID,r0 111 mtspr SPRN_PID,r0 112 LOAD_REG_IMMEDIATE(r0, PCR_MASK) 113 mtspr SPRN_PCR,r0 114 mfspr r3,SPRN_LPCR 115 LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE | LPCR_HEIC) 116 or r3, r3, r4 117 LOAD_REG_IMMEDIATE(r4, LPCR_UPRT | LPCR_HR) 118 andc r3, r3, r4 119 li r4,0 /* LPES = 0 */ 120 bl __init_LPCR_ISA300 121 bl __init_HFSCR 122 bl __init_PMU_HV 123 mtlr r11 124 blr 125 126 _GLOBAL(__restore_cpu_power10) 127 mflr r11 128 bl __init_FSCR_power10 129 bl __init_PMU 130 bl __init_PMU_ISA31 131 b 1f 132 133 _GLOBAL(__restore_cpu_power9) 134 mflr r11 135 bl __init_FSCR 136 bl __init_PMU 137 1: mfmsr r3 138 rldicl. r0,r3,4,63 139 mtlr r11 140 beqlr 141 li r0,0 142 mtspr SPRN_PSSCR,r0 143 mtspr SPRN_LPID,r0 144 mtspr SPRN_PID,r0 145 LOAD_REG_IMMEDIATE(r0, PCR_MASK) 146 mtspr SPRN_PCR,r0 147 mfspr r3,SPRN_LPCR 148 LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE | LPCR_HEIC) 149 or r3, r3, r4 150 LOAD_REG_IMMEDIATE(r4, LPCR_UPRT | LPCR_HR) 151 andc r3, r3, r4 152 li r4,0 /* LPES = 0 */ 153 bl __init_LPCR_ISA300 154 bl __init_HFSCR 155 bl __init_PMU_HV 156 mtlr r11 157 blr 158 159 __init_hvmode_206: 160 /* Disable CPU_FTR_HVMODE and exit if MSR:HV is not set */ 161 mfmsr r3 162 rldicl. r0,r3,4,63 163 bnelr 164 ld r5,CPU_SPEC_FEATURES(r4) 165 LOAD_REG_IMMEDIATE(r6,CPU_FTR_HVMODE | CPU_FTR_P9_TM_HV_ASSIST) 166 andc r5,r5,r6 167 std r5,CPU_SPEC_FEATURES(r4) 168 blr 169 170 __init_LPCR_ISA206: 171 /* Setup a sane LPCR: 172 * Called with initial LPCR in R3 and desired LPES 2-bit value in R4 173 * 174 * LPES = 0b01 (HSRR0/1 used for 0x500) 175 * PECE = 0b111 176 * DPFD = 4 177 * HDICE = 0 178 * VC = 0b100 (VPM0=1, VPM1=0, ISL=0) 179 * VRMASD = 0b10000 (L=1, LP=00) 180 * 181 * Other bits untouched for now 182 */ 183 li r5,0x10 184 rldimi r3,r5, LPCR_VRMASD_SH, 64-LPCR_VRMASD_SH-5 185 186 /* POWER9 has no VRMASD */ 187 __init_LPCR_ISA300: 188 rldimi r3,r4, LPCR_LPES_SH, 64-LPCR_LPES_SH-2 189 ori r3,r3,(LPCR_PECE0|LPCR_PECE1|LPCR_PECE2) 190 li r5,4 191 rldimi r3,r5, LPCR_DPFD_SH, 64-LPCR_DPFD_SH-3 192 clrrdi r3,r3,1 /* clear HDICE */ 193 li r5,4 194 rldimi r3,r5, LPCR_VC_SH, 0 195 mtspr SPRN_LPCR,r3 196 isync 197 blr 198 199 __init_FSCR_power10: 200 mfspr r3, SPRN_FSCR 201 ori r3, r3, FSCR_PREFIX 202 mtspr SPRN_FSCR, r3 203 // fall through 204 205 __init_FSCR: 206 mfspr r3,SPRN_FSCR 207 ori r3,r3,FSCR_TAR|FSCR_EBB 208 mtspr SPRN_FSCR,r3 209 blr 210 211 __init_HFSCR: 212 mfspr r3,SPRN_HFSCR 213 ori r3,r3,HFSCR_TAR|HFSCR_TM|HFSCR_BHRB|HFSCR_PM|\ 214 HFSCR_DSCR|HFSCR_VECVSX|HFSCR_FP|HFSCR_EBB|HFSCR_MSGP 215 mtspr SPRN_HFSCR,r3 216 blr 217 218 __init_PMU_HV: 219 li r5,0 220 mtspr SPRN_MMCRC,r5 221 blr 222 223 __init_PMU_HV_ISA207: 224 li r5,0 225 mtspr SPRN_MMCRH,r5 226 blr 227 228 __init_PMU: 229 li r5,0 230 mtspr SPRN_MMCRA,r5 231 mtspr SPRN_MMCR0,r5 232 mtspr SPRN_MMCR1,r5 233 mtspr SPRN_MMCR2,r5 234 blr 235 236 __init_PMU_ISA207: 237 li r5,0 238 mtspr SPRN_MMCRS,r5 239 blr 240 241 __init_PMU_ISA31: 242 li r5,0 > 243 mtspr SPRN_MMCR3,r5 > 244 LOAD_REG_IMMEDIATE(r5, MMCRA_BHRB_DISABLE) --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org