]> git.proxmox.com Git - pve-kernel.git/blob - patches/kernel/0015-KVM-nSVM-Advertise-support-for-flush-by-ASID.patch
8ae3a67f4ad62c8cf884e95eecc68025fb5f056b
[pve-kernel.git] / patches / kernel / 0015-KVM-nSVM-Advertise-support-for-flush-by-ASID.patch
1 From 42af81abf0b96ab661591d024aed55c05dd85b91 Mon Sep 17 00:00:00 2001
2 From: Sean Christopherson <seanjc@google.com>
3 Date: Wed, 18 Oct 2023 12:41:04 -0700
4 Subject: [PATCH 2/2] KVM: nSVM: Advertise support for flush-by-ASID
5
6 Advertise support for FLUSHBYASID when nested SVM is enabled, as KVM can
7 always emulate flushing TLB entries for a vmcb12 ASID, e.g. by running L2
8 with a new, fresh ASID in vmcb02. Some modern hypervisors, e.g. VMWare
9 Workstation 17, require FLUSHBYASID support and will refuse to run if it's
10 not present.
11
12 Punt on proper support, as "Honor L1's request to flush an ASID on nested
13 VMRUN" is one of the TODO items in the (incomplete) list of issues that
14 need to be addressed in order for KVM to NOT do a full TLB flush on every
15 nested SVM transition (see nested_svm_transition_tlb_flush()).
16
17 Reported-by: Stefan Sterz <s.sterz@proxmox.com>
18 Closes: https://lkml.kernel.org/r/b9915c9c-4cf6-051a-2d91-44cc6380f455%40proxmox.com
19 Signed-off-by: Sean Christopherson <seanjc@google.com>
20 Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
21 ---
22 arch/x86/kvm/svm/svm.c | 1 +
23 1 file changed, 1 insertion(+)
24
25 diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
26 index 9a194aa1a75a..0fde9b0c464b 100644
27 --- a/arch/x86/kvm/svm/svm.c
28 +++ b/arch/x86/kvm/svm/svm.c
29 @@ -4880,6 +4880,7 @@ static __init void svm_set_cpu_caps(void)
30 if (nested) {
31 kvm_cpu_cap_set(X86_FEATURE_SVM);
32 kvm_cpu_cap_set(X86_FEATURE_VMCBCLEAN);
33 + kvm_cpu_cap_set(X86_FEATURE_FLUSHBYASID);
34
35 if (nrips)
36 kvm_cpu_cap_set(X86_FEATURE_NRIPS);
37 --
38 2.39.2
39