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.