From: kernel test robot <lkp@intel.com>
To: Brendan Jackman <jackmanb@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Alexandre Chartre <alexandre.chartre@oracle.com>,
Liran Alon <liran.alon@oracle.com>,
Jan Setje-Eilers <jan.setjeeilers@oracle.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Mel Gorman <mgorman@suse.de>,
Lorenzo Stoakes <lstoakes@gmail.com>,
David Hildenbrand <david@redhat.com>,
Vlastimil Babka <vbabka@suse.cz>,
Michal Hocko <mhocko@kernel.org>,
Khalid Aziz <khalid.aziz@oracle.com>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Valentin Schneider <vschneid@redhat.com>,
Paul Turner <pjt@google.com>, Reiji Watanabe <reijiw@google.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Linux Memory Management List <linux-mm@kvack.org>
Subject: Re: [PATCH 26/26] KVM: x86: asi: Add some mitigations on address space transitions
Date: Sun, 14 Jul 2024 13:02:32 +0800 [thread overview]
Message-ID: <202407141222.Av9rdSaZ-lkp@intel.com> (raw)
In-Reply-To: <20240712-asi-rfc-24-v1-26-144b319a40d8@google.com>
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
next prev parent reply other threads:[~2024-07-14 5:03 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-12 17:00 [PATCH 00/26] Address Space Isolation (ASI) 2024 Brendan Jackman
2024-07-12 17:00 ` [PATCH 01/26] mm: asi: Make some utility functions noinstr compatible Brendan Jackman
2024-10-25 11:41 ` Borislav Petkov
2024-10-25 13:21 ` Brendan Jackman
2024-10-29 17:38 ` Junaid Shahid
2024-10-29 19:12 ` Thomas Gleixner
2024-11-01 1:44 ` Junaid Shahid
2024-11-01 10:06 ` Brendan Jackman
2024-11-01 20:27 ` Thomas Gleixner
2024-11-05 21:40 ` Junaid Shahid
2024-12-13 14:45 ` Brendan Jackman
2024-07-12 17:00 ` [PATCH 02/26] x86: Create CONFIG_MITIGATION_ADDRESS_SPACE_ISOLATION Brendan Jackman
2024-07-22 7:55 ` Geert Uytterhoeven
2024-07-12 17:00 ` [PATCH 03/26] mm: asi: Introduce ASI core API Brendan Jackman
2024-07-12 17:00 ` [PATCH 04/26] objtool: let some noinstr functions make indirect calls Brendan Jackman
2024-07-12 17:00 ` [PATCH 05/26] mm: asi: Add infrastructure for boot-time enablement Brendan Jackman
2024-07-12 17:00 ` [PATCH 06/26] mm: asi: ASI support in interrupts/exceptions Brendan Jackman
2024-07-12 17:00 ` [PATCH 07/26] mm: asi: Switch to unrestricted address space before a context switch Brendan Jackman
2024-07-12 17:00 ` [PATCH 08/26] mm: asi: Use separate PCIDs for restricted address spaces Brendan Jackman
2024-07-12 17:00 ` [PATCH 09/26] mm: asi: Make __get_current_cr3_fast() ASI-aware Brendan Jackman
2024-07-12 17:00 ` [PATCH 10/26] mm: asi: Avoid warning from NMI userspace accesses in ASI context Brendan Jackman
2024-07-14 3:59 ` kernel test robot
2024-07-12 17:00 ` [PATCH 11/26] mm: asi: ASI page table allocation functions Brendan Jackman
2024-07-12 17:00 ` [PATCH 12/26] mm: asi: asi_exit() on PF, skip handling if address is accessible Brendan Jackman
2024-07-12 17:00 ` [PATCH 13/26] mm: asi: Functions to map/unmap a memory range into ASI page tables Brendan Jackman
2024-07-12 17:00 ` [PATCH 14/26] mm: asi: Add basic infrastructure for global non-sensitive mappings Brendan Jackman
2024-07-12 17:00 ` [PATCH 15/26] mm: Add __PAGEFLAG_FALSE Brendan Jackman
2024-07-12 17:00 ` [PATCH 16/26] mm: asi: Map non-user buddy allocations as nonsensitive Brendan Jackman
2024-08-21 13:59 ` Brendan Jackman
2024-07-12 17:00 ` [PATCH 17/26] mm: asi: Map kernel text and static data " Brendan Jackman
2024-07-12 17:00 ` [PATCH 18/26] mm: asi: Map vmalloc/vmap data as nonsesnitive Brendan Jackman
2024-07-13 15:53 ` kernel test robot
2024-07-12 17:00 ` [PATCH 19/26] percpu: clean up all mappings when pcpu_map_pages() fails Brendan Jackman
2024-07-16 1:33 ` Yosry Ahmed
2024-07-12 17:00 ` [PATCH 20/26] mm: asi: Map dynamic percpu memory as nonsensitive Brendan Jackman
2024-07-12 17:00 ` [PATCH 21/26] KVM: x86: asi: Restricted address space for VM execution Brendan Jackman
2024-07-12 17:00 ` [PATCH 22/26] KVM: x86: asi: Stabilize CR3 when potentially accessing with ASI Brendan Jackman
2024-07-12 17:00 ` [PATCH 23/26] mm: asi: Stabilize CR3 in switch_mm_irqs_off() Brendan Jackman
2024-07-12 17:00 ` [PATCH 24/26] mm: asi: Make TLB flushing correct under ASI Brendan Jackman
2024-07-12 17:00 ` [PATCH 25/26] mm: asi: Stop ignoring asi=on cmdline flag Brendan Jackman
2024-07-12 17:00 ` [PATCH 26/26] KVM: x86: asi: Add some mitigations on address space transitions Brendan Jackman
2024-07-14 5:02 ` kernel test robot [this message]
2024-08-20 10:52 ` Shivank Garg
2024-08-21 9:38 ` Brendan Jackman
2024-08-21 16:00 ` Shivank Garg
2024-07-12 17:09 ` [PATCH 00/26] Address Space Isolation (ASI) 2024 Brendan Jackman
2024-09-11 16:37 ` Brendan Jackman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202407141222.Av9rdSaZ-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=alexandre.chartre@oracle.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=dietmar.eggemann@arm.com \
--cc=hpa@zytor.com \
--cc=jackmanb@google.com \
--cc=jan.setjeeilers@oracle.com \
--cc=juri.lelli@redhat.com \
--cc=khalid.aziz@oracle.com \
--cc=linux-mm@kvack.org \
--cc=liran.alon@oracle.com \
--cc=llvm@lists.linux.dev \
--cc=lstoakes@gmail.com \
--cc=luto@kernel.org \
--cc=mark.rutland@arm.com \
--cc=mgorman@suse.de \
--cc=mhocko@kernel.org \
--cc=mingo@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=reijiw@google.com \
--cc=rostedt@goodmis.org \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=vbabka@suse.cz \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).