[PATCH v2 40/60] KVM: PPC: Book3S HV P9: Implement TM fastpath for guest entry/exit

kernel test robot lkp at intel.com
Thu Aug 12 06:40:24 AEST 2021


Hi Nicholas,

I love your patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on linus/master v5.14-rc5 next-20210811]
[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/Nicholas-Piggin/KVM-PPC-Book3S-HV-P9-entry-exit-optimisations/20210812-000748
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc64-randconfig-r024-20210811 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 10.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://github.com/0day-ci/linux/commit/30a3a9ae99f124a863c41f268c68b647d7116b65
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Nicholas-Piggin/KVM-PPC-Book3S-HV-P9-entry-exit-optimisations/20210812-000748
        git checkout 30a3a9ae99f124a863c41f268c68b647d7116b65
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/kvm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/powerpc/include/asm/processor.h:11,
                    from arch/powerpc/include/asm/thread_info.h:40,
                    from include/linux/thread_info.h:60,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/powerpc/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:78,
                    from include/linux/percpu.h:6,
                    from include/linux/context_tracking_state.h:5,
                    from include/linux/hardirq.h:5,
                    from include/linux/kvm_host.h:7,
                    from arch/powerpc/kvm/book3s_hv_p9_entry.c:3:
   arch/powerpc/kvm/book3s_hv_p9_entry.c: In function 'load_vcpu_state':
>> arch/powerpc/kvm/book3s_hv_p9_entry.c:297:33: error: 'struct kvm_vcpu_arch' has no member named 'texasr'
     297 |    mtspr(SPRN_TEXASR, vcpu->arch.texasr);
         |                                 ^
   arch/powerpc/include/asm/reg.h:1396:33: note: in definition of macro 'mtspr'
    1396 |          : "r" ((unsigned long)(v)) \
         |                                 ^
>> arch/powerpc/kvm/book3s_hv_p9_entry.c:298:33: error: 'struct kvm_vcpu_arch' has no member named 'tfhar'; did you mean 'tar'?
     298 |    mtspr(SPRN_TFHAR, vcpu->arch.tfhar);
         |                                 ^~~~~
   arch/powerpc/include/asm/reg.h:1396:33: note: in definition of macro 'mtspr'
    1396 |          : "r" ((unsigned long)(v)) \
         |                                 ^
>> arch/powerpc/kvm/book3s_hv_p9_entry.c:299:33: error: 'struct kvm_vcpu_arch' has no member named 'tfiar'; did you mean 'tar'?
     299 |    mtspr(SPRN_TFIAR, vcpu->arch.tfiar);
         |                                 ^~~~~
   arch/powerpc/include/asm/reg.h:1396:33: note: in definition of macro 'mtspr'
    1396 |          : "r" ((unsigned long)(v)) \
         |                                 ^
   arch/powerpc/kvm/book3s_hv_p9_entry.c: In function 'store_vcpu_state':
   arch/powerpc/kvm/book3s_hv_p9_entry.c:331:14: error: 'struct kvm_vcpu_arch' has no member named 'texasr'
     331 |    vcpu->arch.texasr = mfspr(SPRN_TEXASR);
         |              ^
   arch/powerpc/kvm/book3s_hv_p9_entry.c:332:15: error: 'struct kvm_vcpu_arch' has no member named 'tfhar'; did you mean 'tar'?
     332 |    vcpu->arch.tfhar = mfspr(SPRN_TFHAR);
         |               ^~~~~
         |               tar
   arch/powerpc/kvm/book3s_hv_p9_entry.c:333:15: error: 'struct kvm_vcpu_arch' has no member named 'tfiar'; did you mean 'tar'?
     333 |    vcpu->arch.tfiar = mfspr(SPRN_TFIAR);
         |               ^~~~~
         |               tar


vim +297 arch/powerpc/kvm/book3s_hv_p9_entry.c

   283	
   284	/* Returns true if current MSR and/or guest MSR may have changed */
   285	bool load_vcpu_state(struct kvm_vcpu *vcpu,
   286			     struct p9_host_os_sprs *host_os_sprs)
   287	{
   288		bool ret = false;
   289	
   290		if (cpu_has_feature(CPU_FTR_TM) ||
   291		    cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST)) {
   292			unsigned long guest_msr = vcpu->arch.shregs.msr;
   293			if (MSR_TM_ACTIVE(guest_msr)) {
   294				kvmppc_restore_tm_hv(vcpu, guest_msr, true);
   295				ret = true;
   296			} else {
 > 297				mtspr(SPRN_TEXASR, vcpu->arch.texasr);
 > 298				mtspr(SPRN_TFHAR, vcpu->arch.tfhar);
 > 299				mtspr(SPRN_TFIAR, vcpu->arch.tfiar);
   300			}
   301		}
   302	
   303		load_spr_state(vcpu, host_os_sprs);
   304	
   305		load_fp_state(&vcpu->arch.fp);
   306	#ifdef CONFIG_ALTIVEC
   307		load_vr_state(&vcpu->arch.vr);
   308	#endif
   309		mtspr(SPRN_VRSAVE, vcpu->arch.vrsave);
   310	
   311		return ret;
   312	}
   313	EXPORT_SYMBOL_GPL(load_vcpu_state);
   314	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 43470 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20210812/889de682/attachment-0001.gz>


More information about the Linuxppc-dev mailing list