public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* Re: [PATCH 26/26] KVM: x86: asi: Add some mitigations on address space transitions
       [not found] <20240712-asi-rfc-24-v1-26-144b319a40d8@google.com>
@ 2024-07-14  5:02 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-07-14  5:02 UTC (permalink / raw)
  To: Brendan Jackman, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	Dave Hansen, H. Peter Anvin, Andy Lutomirski, Peter Zijlstra,
	Sean Christopherson, Paolo Bonzini, Alexandre Chartre, Liran Alon,
	Jan Setje-Eilers, Catalin Marinas, Will Deacon, Mark Rutland,
	Andrew Morton, Mel Gorman, Lorenzo Stoakes, David Hildenbrand,
	Vlastimil Babka, Michal Hocko, Khalid Aziz, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Steven Rostedt,
	Valentin Schneider, Paul Turner, Reiji Watanabe
  Cc: llvm, oe-kbuild-all, Linux Memory Management List

Hi Brendan,

kernel test robot noticed the following build errors:

[auto build test ERROR on a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6]

url:    https://github.com/intel-lab-lkp/linux/commits/Brendan-Jackman/mm-asi-Make-some-utility-functions-noinstr-compatible/20240713-012107
base:   a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6
patch link:    https://lore.kernel.org/r/20240712-asi-rfc-24-v1-26-144b319a40d8%40google.com
patch subject: [PATCH 26/26] KVM: x86: asi: Add some mitigations on address space transitions
config: i386-buildonly-randconfig-004-20240714 (https://download.01.org/0day-ci/archive/20240714/202407141222.Av9rdSaZ-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240714/202407141222.Av9rdSaZ-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407141222.Av9rdSaZ-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/x86/kvm/x86.c:9786:12: error: no member named 'post_asi_enter' in 'struct asi_hooks'
    9786 |         asi_hooks.post_asi_enter = ops->post_asi_enter;
         |         ~~~~~~~~~ ^
   1 error generated.


vim +9786 arch/x86/kvm/x86.c

  9726	
  9727	
  9728	int kvm_x86_vendor_init(struct kvm_x86_init_ops *ops)
  9729	{
  9730		u64 host_pat;
  9731		int r, cpu;
  9732	
  9733		guard(mutex)(&vendor_module_lock);
  9734	
  9735		if (kvm_x86_ops.hardware_enable) {
  9736			pr_err("already loaded vendor module '%s'\n", kvm_x86_ops.name);
  9737			return -EEXIST;
  9738		}
  9739	
  9740		/*
  9741		 * KVM explicitly assumes that the guest has an FPU and
  9742		 * FXSAVE/FXRSTOR. For example, the KVM_GET_FPU explicitly casts the
  9743		 * vCPU's FPU state as a fxregs_state struct.
  9744		 */
  9745		if (!boot_cpu_has(X86_FEATURE_FPU) || !boot_cpu_has(X86_FEATURE_FXSR)) {
  9746			pr_err("inadequate fpu\n");
  9747			return -EOPNOTSUPP;
  9748		}
  9749	
  9750		if (IS_ENABLED(CONFIG_PREEMPT_RT) && !boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
  9751			pr_err("RT requires X86_FEATURE_CONSTANT_TSC\n");
  9752			return -EOPNOTSUPP;
  9753		}
  9754	
  9755		/*
  9756		 * KVM assumes that PAT entry '0' encodes WB memtype and simply zeroes
  9757		 * the PAT bits in SPTEs.  Bail if PAT[0] is programmed to something
  9758		 * other than WB.  Note, EPT doesn't utilize the PAT, but don't bother
  9759		 * with an exception.  PAT[0] is set to WB on RESET and also by the
  9760		 * kernel, i.e. failure indicates a kernel bug or broken firmware.
  9761		 */
  9762		if (rdmsrl_safe(MSR_IA32_CR_PAT, &host_pat) ||
  9763		    (host_pat & GENMASK(2, 0)) != 6) {
  9764			pr_err("host PAT[0] is not WB\n");
  9765			return -EIO;
  9766		}
  9767	
  9768		x86_emulator_cache = kvm_alloc_emulator_cache();
  9769		if (!x86_emulator_cache) {
  9770			pr_err("failed to allocate cache for x86 emulator\n");
  9771			return -ENOMEM;
  9772		}
  9773	
  9774		user_return_msrs = alloc_percpu(struct kvm_user_return_msrs);
  9775		if (!user_return_msrs) {
  9776			pr_err("failed to allocate percpu kvm_user_return_msrs\n");
  9777			r = -ENOMEM;
  9778			goto out_free_x86_emulator_cache;
  9779		}
  9780		kvm_nr_uret_msrs = 0;
  9781	
  9782		r = kvm_mmu_vendor_module_init();
  9783		if (r)
  9784			goto out_free_percpu;
  9785	
> 9786		asi_hooks.post_asi_enter = ops->post_asi_enter;
  9787		r = asi_register_class("KVM", &asi_hooks);
  9788		if (r < 0)
  9789			goto out_mmu_exit;
  9790		kvm_asi_index = r;
  9791	
  9792		if (boot_cpu_has(X86_FEATURE_XSAVE)) {
  9793			host_xcr0 = xgetbv(XCR_XFEATURE_ENABLED_MASK);
  9794			kvm_caps.supported_xcr0 = host_xcr0 & KVM_SUPPORTED_XCR0;
  9795		}
  9796	
  9797		rdmsrl_safe(MSR_EFER, &host_efer);
  9798	
  9799		if (boot_cpu_has(X86_FEATURE_XSAVES))
  9800			rdmsrl(MSR_IA32_XSS, host_xss);
  9801	
  9802		kvm_init_pmu_capability(ops->pmu_ops);
  9803	
  9804		if (boot_cpu_has(X86_FEATURE_ARCH_CAPABILITIES))
  9805			rdmsrl(MSR_IA32_ARCH_CAPABILITIES, host_arch_capabilities);
  9806	
  9807		r = ops->hardware_setup();
  9808		if (r != 0)
  9809			goto out_asi_unregister;
  9810	
  9811		kvm_ops_update(ops);
  9812	
  9813		for_each_online_cpu(cpu) {
  9814			smp_call_function_single(cpu, kvm_x86_check_cpu_compat, &r, 1);
  9815			if (r < 0)
  9816				goto out_unwind_ops;
  9817		}
  9818	
  9819		/*
  9820		 * Point of no return!  DO NOT add error paths below this point unless
  9821		 * absolutely necessary, as most operations from this point forward
  9822		 * require unwinding.
  9823		 */
  9824		kvm_timer_init();
  9825	
  9826		if (pi_inject_timer == -1)
  9827			pi_inject_timer = housekeeping_enabled(HK_TYPE_TIMER);
  9828	#ifdef CONFIG_X86_64
  9829		pvclock_gtod_register_notifier(&pvclock_gtod_notifier);
  9830	
  9831		if (hypervisor_is_type(X86_HYPER_MS_HYPERV))
  9832			set_hv_tscchange_cb(kvm_hyperv_tsc_notifier);
  9833	#endif
  9834	
  9835		kvm_register_perf_callbacks(ops->handle_intel_pt_intr);
  9836	
  9837		if (!kvm_cpu_cap_has(X86_FEATURE_XSAVES))
  9838			kvm_caps.supported_xss = 0;
  9839	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-07-14  5:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20240712-asi-rfc-24-v1-26-144b319a40d8@google.com>
2024-07-14  5:02 ` [PATCH 26/26] KVM: x86: asi: Add some mitigations on address space transitions kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox