From: Sean Christopherson <seanjc@google.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Kevin Cheng <chengkev@google.com>
Subject: [PATCH v5 0/2] KVM: nSVM: Fix #UD on VMMCALL issues.
Date: Tue, 3 Mar 2026 16:22:21 -0800 [thread overview]
Message-ID: <20260304002223.1105129-1-seanjc@google.com> (raw)
The VMMCALL fixes from Kevin's broader "Align SVM with APM defined behaviors"
series.
v5:
- Separate the VMMCALL fixes from everything else.
- Rewrite the changelog to make clear this is fixing only the Hyper-V case.
- Add a patch to always intercept VMMCALL, because letting it #UD natively
does more harm than good.
v4:
- https://lore.kernel.org/all/20260228033328.2285047-1-chengkev@google.com
- Dropped "KVM: SVM: Inject #UD for STGI if EFER.SVME=0 and SVM Lock
and DEV are not available" as per Sean
- Added back STGI and CLGI intercept clearing in init_vmcb to maintain
previous behavior on intel guests. Previously intel guests always
had STGI and CLGI intercepts cleared if vgif was enabled. In V3,
because the clearing of the intercepts was moved from init_vmcb() to
the !guest_cpuid_is_intel_compatible() case in
svm_recalc_instruction_intercepts(), the CLGI intercept would be
indefinitely set on intel guests. I added back the clearing to
init_vmcb() to retain intel guest behavior before this patch.
- In "Raise #UD if VMMCALL instruction is not intercepted" patch:
- Exempt Hyper-V L2 TLB flush hypercalls from the #UD injection,
as L0 intentionally intercepts these VMMCALLs on behalf of L1
via the direct hypercall enlightenment.
- Added nested_svm_is_l2_tlb_flush_hcall() which just returns true
if the hypercall was a Hyper-V L2 TLB flush hypercall.
v3:
- https://lore.kernel.org/kvm/20260122045755.205203-1-chengkev@google.com/
- Elaborated on 'Move STGI and CLGI intercept handling' commit message
as per Sean
- Fixed bug due to interaction with svm_enable_nmi_window() and 'Move
STGI and CLGI intercept handling' as pointed out by Yosry. Code
changes suggested by Sean/Yosry.
- Removed open-coded nested_svm_check_permissions() in STGI
interception function as per Yosry
v2:
- https://lore.kernel.org/all/20260112174535.3132800-1-chengkev@google.com
- Split up the series into smaller more logical changes as suggested
by Sean
- Added patch for injecting #UD for STGI under APM defined conditions
as suggested by Sean
- Combined EFER.SVME=0 conditional with intel CPU logic in
svm_recalc_instruction_intercepts
Kevin Cheng (1):
KVM: nSVM: Raise #UD if unhandled VMMCALL isn't intercepted by L1
Sean Christopherson (1):
KVM: nSVM: Always intercept VMMCALL when L2 is active
arch/x86/kvm/hyperv.h | 8 --------
arch/x86/kvm/svm/hyperv.h | 9 ++++++++-
arch/x86/kvm/svm/nested.c | 11 +----------
arch/x86/kvm/svm/svm.c | 19 ++++++++++++++++++-
4 files changed, 27 insertions(+), 20 deletions(-)
base-commit: 11439c4635edd669ae435eec308f4ab8a0804808
--
2.53.0.473.g4a7958ca14-goog
next reply other threads:[~2026-03-04 0:22 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-04 0:22 Sean Christopherson [this message]
2026-03-04 0:22 ` [PATCH v5 1/2] KVM: nSVM: Raise #UD if unhandled VMMCALL isn't intercepted by L1 Sean Christopherson
2026-03-04 1:18 ` Yosry Ahmed
2026-03-04 8:36 ` Vitaly Kuznetsov
2026-03-04 0:22 ` [PATCH v5 2/2] KVM: nSVM: Always intercept VMMCALL when L2 is active Sean Christopherson
2026-03-04 1:15 ` Yosry Ahmed
2026-03-04 1:20 ` Sean Christopherson
2026-03-04 1:22 ` Yosry Ahmed
2026-03-04 8:36 ` Vitaly Kuznetsov
2026-03-05 17:08 ` [PATCH v5 0/2] KVM: nSVM: Fix #UD on VMMCALL issues Sean Christopherson
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=20260304002223.1105129-1-seanjc@google.com \
--to=seanjc@google.com \
--cc=chengkev@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=vkuznets@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.