Messages in this thread | | | Date | Thu, 30 Dec 2021 01:18:02 +0000 | From | Sean Christopherson <> | Subject | Re: vmlinux.o: warning: objtool: __svm_sev_es_vcpu_run()+0x54: BP used as a scratch register |
| |
On Wed, Nov 17, 2021, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: 8ab774587903771821b59471cc723bba6d893942 > commit: 16809ecdc1e8ab7278f1d60021ac809edd17d060 KVM: SVM: Provide an updated VMRUN invocation for SEV-ES guests > date: 11 months ago > config: x86_64-buildonly-randconfig-r005-20211117 (attached as .config) > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 > reproduce (this is a W=1 build): > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=16809ecdc1e8ab7278f1d60021ac809edd17d060 > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > git fetch --no-tags linus master > git checkout 16809ecdc1e8ab7278f1d60021ac809edd17d060 > # save the attached .config to linux build tree > mkdir build_dir > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > vmlinux.o: warning: objtool: __do_fast_syscall_32()+0x3d: call to syscall_enter_from_user_mode_work() leaves .noinstr.text section > vmlinux.o: warning: objtool: __svm_vcpu_run()+0x10e: BP used as a scratch register > >> vmlinux.o: warning: objtool: __svm_sev_es_vcpu_run()+0x54: BP used as a scratch register
__svm_vcpu_run() and __svm_sev_es_vcpu_run() PUSH/POP RBP but don't create a stack frame, which triggers the objtool warning because objtool things the code is using BP as a scratch register (obviously). This shows up when CONFIG_FRAME_POINTER=y and KVM AMD is built into the kernel (apparently 'objtool check' isn't run on modules?).
The easy fix to is add "mov %rsp, %rbp" to create a stack frame. Kinda pointless since neither function makes true calls to other functions, but the extra MOV is harmless and it'd be nice to get rid of the objtool warning.
| |