From: Sean Christopherson <seanjc@google.com>
To: Yosry Ahmed <yosry.ahmed@linux.dev>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH] KVM: SVM: Fix redundant updates of LBR MSR intercepts
Date: Wed, 14 Jan 2026 17:12:20 -0800 [thread overview]
Message-ID: <aWg-9POhfPxbOZ3K@google.com> (raw)
In-Reply-To: <6cozacewv4sop77ilrqnervzpifinxki2ykef55awan2ka5jdf@sqyj7jed3qii>
On Thu, Jan 15, 2026, Yosry Ahmed wrote:
> On Wed, Jan 14, 2026 at 02:07:10PM -0800, Sean Christopherson wrote:
> > On Mon, Dec 15, 2025, Yosry Ahmed wrote:
> > > On Mon, Dec 15, 2025 at 11:38:00AM -0800, Sean Christopherson wrote:
> > > > On Mon, Dec 15, 2025, Yosry Ahmed wrote:
> > > > > On Mon, Dec 15, 2025 at 07:26:54PM +0000, Yosry Ahmed wrote:
> > > > > > svm_update_lbrv() always updates LBR MSRs intercepts, even when they are
> > > > > > already set correctly. This results in force_msr_bitmap_recalc always
> > > > > > being set to true on every nested transition, essentially undoing the
> > > > > > hyperv optimization in nested_svm_merge_msrpm().
> > > > > >
> > > > > > Fix it by keeping track of whether LBR MSRs are intercepted or not and
> > > > > > only doing the update if needed, similar to x2avic_msrs_intercepted.
> > > > > >
> > > > > > Avoid using svm_test_msr_bitmap_*() to check the status of the
> > > > > > intercepts, as an arbitrary MSR will need to be chosen as a
> > > > > > representative of all LBR MSRs, and this could theoretically break if
> > > > > > some of the MSRs intercepts are handled differently from the rest.
> > > > > >
> > > > > > Also, using svm_test_msr_bitmap_*() makes backports difficult as it was
> > > > > > only recently introduced with no direct alternatives in older kernels.
> > > > > >
> > > > > > Fixes: fbe5e5f030c2 ("KVM: nSVM: Always recalculate LBR MSR intercepts in svm_update_lbrv()")
> > > > > > Cc: stable@vger.kernel.org
> > > > > > Signed-off-by: Yosry Ahmed <yosry.ahmed@linux.dev>
> > > > >
> > > > > Sigh.. I had this patch file in my working directory and it was sent by
> > > > > mistake with the series, as the cover letter nonetheless. Sorry about
> > > > > that. Let me know if I should resend.
> > > >
> > > > Eh, it's fine for now. The important part is clarfying that this patch should
> > > > be ignored, which you've already done.
> > >
> > > FWIW that patch is already in Linus's tree so even if someone applies
> > > it, it should be fine.
> >
> > Narrator: it wasn't fine.
> >
> > Please resend this series. The base-commit is garbage because your working tree
> > was polluted with non-public patches, I can't quickly figure out what your "real"
> > base was, and I don't have the bandwidth to manually work through the mess.
> >
> > In the future, please, please don't post patches against a non-public base. It
> > adds a lot of friction on my end, and your series are quite literally the only
> > ones I've had problems with in the last ~6 months.
>
> Sorry this keeps happening, I honestly don't know how it happened. In my
> local repo the base commit is supposedly from your tree:
>
> $ git show 58e10b63777d0aebee2cf4e6c67e1a83e7edbe0f
>
> commit 58e10b63777d0aebee2cf4e6c67e1a83e7edbe0f
> Merge: e0c26d47def7 297631388309
> Author: Sean Christopherson <seanjc@google.com>
> Date: Mon Dec 8 14:58:37 2025 +0000
>
> Merge branch 'fixes'
>
> * fixes:
> KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-Exit
> KVM: VMX: Update SVI during runtime APICv activation
> KVM: nSVM: Set exit_code_hi to -1 when synthesizing SVM_EXIT_ERR (failed VMRUN)
> KVM: nSVM: Clear exit_code_hi in VMCB when synthesizing nested VM-Exits
> KVM: Harden and prepare for modifying existing guest_memfd memslots
> KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot
> KVM: selftests: Add a CPUID testcase for KVM_SET_CPUID2 with runtime updates
> KVM: x86: Apply runtime updates to current CPUID during KVM_SET_CPUID{,2}
> KVM: selftests: Add missing "break" in rseq_test's param parsing
>
> But then I cannot actually find it in your tree. Perhaps I rebased the
> baseline patches accidentally :/
Argh. And now that I checked some of my other repositories, it looks like I have
it in literally every repo _except_ the one I use to push to kvm-x86.
Double argh. This is my fault. 12/08 lines up with the "KVM: x86 and guest_memfd
fixes for 6.19" pull request I sent on 12/10. So it makes sense that the only
branch merged into kvm-x86/next would be 'fixes'. I can only assume I forgot to
tag that specific incarnation.
So, my bad, and sorry for falsely accusing you.
> Anyway, I rebased and retested on top of kvm-x86/next and will resend
> shortly.
Please do, even though I've now got this version applied locally; it'd be nice
to have a conflict-free version.
Again, my apologies.
next prev parent reply other threads:[~2026-01-15 1:12 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-15 19:26 [PATCH] KVM: SVM: Fix redundant updates of LBR MSR intercepts Yosry Ahmed
2025-12-15 19:26 ` [PATCH v3 00/26] Nested SVM fixes, cleanups, and hardening Yosry Ahmed
2025-12-15 19:26 ` [PATCH v3 01/26] KVM: SVM: Switch svm_copy_lbrs() to a macro Yosry Ahmed
2025-12-15 19:26 ` [PATCH v3 02/26] KVM: SVM: Add missing save/restore handling of LBR MSRs Yosry Ahmed
2025-12-15 19:26 ` [PATCH v3 03/26] KVM: selftests: Add a test for LBR save/restore (ft. nested) Yosry Ahmed
2025-12-15 19:26 ` [PATCH v3 04/26] KVM: nSVM: Always inject a #GP if mapping VMCB12 fails on nested VMRUN Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 05/26] KVM: nSVM: Triple fault if mapping VMCB12 fails on nested #VMEXIT Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 06/26] KVM: nSVM: Triple fault if restore host CR3 " Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 07/26] KVM: nSVM: Drop nested_vmcb_check_{save/control}() wrappers Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 08/26] KVM: nSVM: Call enter_guest_mode() before switching to VMCB02 Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 09/26] KVM: nSVM: Make nested_svm_merge_msrpm() return an errno Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 10/26] KVM: nSVM: Call nested_svm_merge_msrpm() from enter_svm_guest_mode() Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 11/26] KVM: nSVM: Call nested_svm_init_mmu_context() before switching to VMCB02 Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 12/26] KVM: nSVM: Refactor minimal #VMEXIT handling out of nested_svm_vmexit() Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 13/26] KVM: nSVM: Unify handling of VMRUN failures with proper cleanup Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 14/26] KVM: nSVM: Clear EVENTINJ field in VMCB12 on nested #VMEXIT Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 15/26] KVM: nSVM: Drop the non-architectural consistency check for NP_ENABLE Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 16/26] KVM: nSVM: Add missing consistency check for nCR3 validity Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 17/26] KVM: nSVM: Add missing consistency check for hCR0.PG and NP_ENABLE Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 18/26] KVM: nSVM: Add missing consistency check for EFER, CR0, CR4, and CS Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 19/26] KVM: nSVM: Add missing consistency check for event_inj Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 20/26] KVM: SVM: Rename vmcb->nested_ctl to vmcb->misc_ctl Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 21/26] KVM: SVM: Rename vmcb->virt_ext to vmcb->misc_ctl2 Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 22/26] KVM: SVM: Use BIT() and GENMASK() for definitions in svm.h Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 23/26] KVM: nSVM: Cache all used fields from VMCB12 Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 24/26] KVM: nSVM: Restrict mapping VMCB12 on nested VMRUN Yosry Ahmed
2025-12-16 16:34 ` Yosry Ahmed
2025-12-16 21:34 ` Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 25/26] KVM: nSVM: Sanitize control fields copied from VMCB12 Yosry Ahmed
2025-12-15 19:27 ` [PATCH v3 26/26] KVM: nSVM: Only copy NP_ENABLE from VMCB01's misc_ctl Yosry Ahmed
2025-12-15 19:33 ` [PATCH] KVM: SVM: Fix redundant updates of LBR MSR intercepts Yosry Ahmed
2025-12-15 19:38 ` Sean Christopherson
2025-12-15 20:10 ` Yosry Ahmed
2026-01-14 22:07 ` Sean Christopherson
2026-01-15 0:35 ` Yosry Ahmed
2026-01-15 1:12 ` Sean Christopherson [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-11-12 1:30 Yosry Ahmed
2025-11-14 16:34 ` Sean Christopherson
2025-11-14 16:52 ` Yosry Ahmed
2025-11-17 17:03 ` Sean Christopherson
2025-11-17 18:38 ` Paolo Bonzini
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=aWg-9POhfPxbOZ3K@google.com \
--to=seanjc@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stable@vger.kernel.org \
--cc=yosry.ahmed@linux.dev \
/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.