From nobody Mon Jun 8 19:54:59 2026 Received: from xmbghk7.mail.qq.com (xmbghk7.mail.qq.com [43.163.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0228A280A56; Wed, 27 May 2026 02:59:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=43.163.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779850791; cv=none; b=lUKlvioTnU7u6K9Pi3o1yTxPsF2dTwtSAcGl+CsOPbzPSpe7Z/VA+9uS6yXnWriJMWcPsNZxvCNwgwCTmr+KgJ1H7rOBAiCArvd7I4eiwKVjDmvltTxANmBsGgEVv4DfPiB9ldH37mEt5JivhNS7BSkiiuu4pgZNVV99v42UotY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779850791; c=relaxed/simple; bh=SSXNkDo8qKS9ZsKBs/x8OJE9Le+R3l3Do3zi51Srzsk=; h=From:To:Cc:Subject:Mime-Version:Content-Type:Date:Message-ID: References:In-Reply-To; b=ezAqS/EaxbVsyrK4ZuY3n1q6g207lJo4TrAvj3XqnTAG+UukDriXQm7LgqCd0PmEx7806RgF6SIX1yymHwfAFb0LXEcgal85VRLYVafSJoC1BiK9yZ03zqJTzQuptq/FRsnZ7E6Td6s4XhC5fD9BjW29HFWWphdO2SltA22YOYA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com; spf=pass smtp.mailfrom=qq.com; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b=ZIdI8PTg; arc=none smtp.client-ip=43.163.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=qq.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b="ZIdI8PTg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1779850784; bh=SSXNkDo8qKS9ZsKBs/x8OJE9Le+R3l3Do3zi51Srzsk=; h=From:To:Cc:Subject:Date:References:In-Reply-To; b=ZIdI8PTgzQI5tJD0majtioKrn9sZSKqj9Yh60Z0QuFZSiDkC+RnJg4Cs/rIH10i4Y 8oK0WJG0f4OnlNml3fgR1hCdpmajA+Zqnyo//H2vkObeuilMjVwa7RNCLfIGmu59Vh /Ea/+9l65rvNAkqh5xhJn6MNVRe1+ZG8dbU1Cpn0= X-QQ-XMRINFO: OD9hHCdaPRBwzNATVdHr0BDzQGAPnDDpUA== X-QQ-XMAILINFO: M1JY6XCfJolW0EZj7d8OyA0AIq96JIaBFUoSx4vn3MVfN7VnXReZSQEMKDn7ec kjrqnhJZtPfRn9WHpLM9LGemgDudr55o/lL8cOkdzc+ArbHlto93o5fvRL3ofRYnjhFZTGSaqJSJM ppnLxWbFaoLCBr6BzhhGz5VgQm7hvXS3gM6oRwqO7UJxu/61yHEtEHUwLy/TRNRyRCYxhG6DRa9jj BFFQytKReVIWIf6P35kbdWRcmQu0DYgBZbZTeesEepRVOBakWI0HVu/px5i3JuTkHI5bgtNTZLTB6 qqr8ETOT9/8YR8K3Zu2FRejNJ3fG4/v17o3nfnmTIXtWZBJ0zF8vRrEpyDcOirAH3FsCOzfYcTC/w FlPq3AWQqhBErteGgb994SRckOI65LZu+t4Z+udIk8Z/RuYFOQDDRmt3m6nhlUFEwmFGKGpZzjLpk MCPpCX8FmQLHhuLYOmZI2+7wJQNV9UV5LsiZx1VOkdK06u8wWIV7m16XAc+kM7/JJ8HFve7tlhC0d hdpw7PN8V0C75qePWXuIvB+wlpYLr6Ly5isLr/YuS05YInAMacTzCOyXh9L0GCpSRLT0W5W2vMC5p hb3NLPck8/ZSOh2OxkBe3I3hWSLx7kcViczKS05Tu52xiE/l7OSNfdsUpqWKLiA0UCuqRKbn8isnP zGx2DUb0WmrdOYQouYP79nmjHC084LG2i3SJrVftgHIoJefLsWsGw7N9GCmzjF9yFHsn0NVBsvo0X ij6CQSEDCdUsWezM3hJC+jmvKgHzUfQ/Pb7YgqDWNlO/sOvuYBj77wzjjWnLf95bwThBCpQxRfqCk eF0lZVFhDuiexv+cRjhNgZKjlUqsCtJxbYNoO32NTcigpwybyUcwC9jefkjyxtrbkSWOV1Oy/TO45 9sLuEEYgBwQMWml7FsB3Z5sc4JYM4Px9oWP4m/lFjgljCc3Gj7WeRHUiTKh5kvqgTenEIGWVv2KgA LAPQ2FHsR0zDOG7LzVrfMic6VmUeZ7Stihy5EaLm5yxKRYZIsINl+xFv66gnpdpPptAVmeCePWZGS uGOvsOQccKcDLiNjqr6FKmPOem2Nx+CX3e7PuWEGvY5054cajJO5dimV1SIL0Lkl8gAC2UiE/dG6b vLB//O1yRSfmbg== From: "=?utf-8?B?5b+r5LmQ6LGG6LGG?=" <1356292400@qq.com> To: "=?utf-8?B?U2VhbiBDaHJpc3RvcGhlcnNvbg==?=" , "=?utf-8?B?UGFvbG8gQm9uemluaQ==?=" Cc: "=?utf-8?B?a3Zt?=" , "=?utf-8?B?bGludXgta2VybmVs?=" Subject: =?utf-8?B?5Zue5aSN77yaW1BBVENIIHYyXSBLVk06IFZNWDog?= =?utf-8?B?SGFuZGxlIGJhZCB2YWx1ZXMgb24gcHJveGllZCB3?= =?utf-8?B?cml0ZXMgdG8gTEJSIE1TUnM=?= Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Date: Wed, 27 May 2026 10:59:43 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x References: <20260527022617.3973884-1-seanjc@google.com> In-Reply-To: <20260527022617.3973884-1-seanjc@google.com> X-QQ-mid: xmsezb51-0t1779850783todszxny1 Content-Type: text/plain; charset="utf-8" Thanks for picking this up and reworking the changelog! =E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6 =E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9ASean Christopherson =E5=8F=91=E4=BB=B6=E6=97=B6=E9=97=B4=EF=BC=9A2026=E5=B9=B45=E6=9C=8827=E6= =97=A5 10:26 =E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9ASean Christopherson = , Paolo Bonzini =E6=8A=84=E9=80=81=EF=BC=9Akvm , linux-kernel , Xuanqing Shi <1356292400@qq.com> =E4=B8=BB=E9=A2=98=EF=BC=9A[PATCH v2] KVM: VMX: Handle bad values on proxie= d writes to LBR MSRs From:=C2=A0Xuanqing=C2=A0Shi=C2=A0<1356292400@qq.com> Use=C2=A0the=C2=A0"safe"=C2=A0WRMSR=C2=A0API=C2=A0when=C2=A0writing=C2=A0LB= Rs=C2=A0on=C2=A0behalf=C2=A0of=C2=A0the=C2=A0guest=C2=A0(or=C2=A0host userspace),=C2=A0and=C2=A0propagate=C2=A0any=C2=A0errors=C2=A0back=C2=A0to= =C2=A0the=C2=A0instigator,=C2=A0as=C2=A0the=C2=A0value being=C2=A0written=C2=A0is=C2=A0untrusted.=C2=A0=C2=A0E.g.=C2=A0if=C2=A0the= =C2=A0guest=C2=A0(or=C2=A0host=C2=A0userspace)=C2=A0attempts to=C2=A0set=C2=A0reserved=C2=A0bits=C2=A0in=C2=A0LBR_SELECT,=C2=A0then=C2= =A0KVM=C2=A0needs=C2=A0to=C2=A0return=C2=A0an=C2=A0error,=C2=A0and not=C2=A0WARN=C2=A0on=C2=A0the=C2=A0bad=C2=A0value. Continue=C2=A0using=C2=A0the=C2=A0"unsafe"=C2=A0version=C2=A0of=C2=A0RDMSR,= =C2=A0as=C2=A0it=C2=A0should=C2=A0be=C2=A0impossible=C2=A0to reach=C2=A0the=C2=A0helper=C2=A0with=C2=A0a=C2=A0completely=C2=A0bogus=C2= =A0MSR,=C2=A0i.e.=C2=A0WARNing=C2=A0on=C2=A0RDMSR=C2=A0failure is=C2=A0very=C2=A0desirable,=C2=A0e.g.=C2=A0to=C2=A0make=C2=A0KVM=C2=A0bugs= =C2=A0more=C2=A0visible. =C2=A0=C2=A0unchecked=C2=A0MSR=C2=A0access=C2=A0error:=C2=A0WRMSR=C2=A0to= =C2=A00x1c8=C2=A0(tried=C2=A0to=C2=A0write=C2=A00x0000000000004000) =C2=A0=C2=A0Call=C2=A0Trace: =C2=A0=C2=A0=C2=A0intel_pmu_set_msr+0x4e0/0x7f0=C2=A0[kvm_intel] =C2=A0=C2=A0=C2=A0kvm_pmu_set_msr+0x17e/0x1c0=C2=A0[kvm] =C2=A0=C2=A0=C2=A0kvm_set_msr_common+0xc76/0x1440=C2=A0[kvm] =C2=A0=C2=A0=C2=A0vmx_set_msr+0x5e6/0x1570=C2=A0[kvm_intel] =C2=A0=C2=A0=C2=A0kvm_emulate_wrmsr+0x54/0x1d0=C2=A0[kvm] =C2=A0=C2=A0=C2=A0vmx_handle_exit+0x7fc/0x970=C2=A0[kvm_intel] Fixes:=C2=A01b5ac3226a1a=C2=A0("KVM:=C2=A0vmx/pmu:=C2=A0Pass-through=C2=A0L= BR=C2=A0msrs=C2=A0when=C2=A0the=C2=A0guest=C2=A0LBR=C2=A0event=C2=A0is=C2= =A0ACTIVE") Cc:=C2=A0stable@vger.kernel.org Signed-off-by:=C2=A0Xuanqing=C2=A0Shi=C2=A0<1356292400@qq.com> [sean:=C2=A0rework=C2=A0changelog,=C2=A0only=C2=A0modify=C2=A0WRMSR=C2=A0pa= th,=C2=A0tag=C2=A0for=C2=A0stable@] Signed-off-by:=C2=A0Sean=C2=A0Christopherson=C2=A0 --- v2: =C2=A0-=C2=A0Rework=C2=A0changelog=C2=A0to=C2=A0better=C2=A0capture=C2=A0th= e=C2=A0scenario. =C2=A0-=C2=A0Keep=C2=A0using=C2=A0the=C2=A0"unsafe"=C2=A0version=C2=A0of=C2= =A0RDMSR. v1:=C2=A0https://lore.kernel.org/all/tencent_744B87186CA59CFD106992329A6510= F7F60A@qq.com =C2=A0arch/x86/kvm/vmx/pmu_intel.c=C2=A0|=C2=A06=C2=A0++++-- =C2=A01=C2=A0file=C2=A0changed,=C2=A04=C2=A0insertions(+),=C2=A02=C2=A0dele= tions(-) diff=C2=A0--git=C2=A0a/arch/x86/kvm/vmx/pmu_intel.c=C2=A0b/arch/x86/kvm/vmx= /pmu_intel.c index=C2=A027eb76e6b6a0..22138c487216=C2=A0100644 ---=C2=A0a/arch/x86/kvm/vmx/pmu_intel.c +++=C2=A0b/arch/x86/kvm/vmx/pmu_intel.c @@=C2=A0-308,13=C2=A0+308,15=C2=A0@@=C2=A0static=C2=A0bool=C2=A0intel_pmu_h= andle_lbr_msrs_access(struct=C2=A0kvm_vcpu=C2=A0*vcpu, =C2=A0 =C2=A0*/ =C2=A0 local_irq_disable(); =C2=A0 if=C2=A0(lbr_desc->event->state=C2=A0=3D=3D=C2=A0PERF_EVENT_STATE_AC= TIVE)=C2=A0{ + int=C2=A0err=C2=A0=3D=C2=A00; + =C2=A0 if=C2=A0(read) =C2=A0 rdmsrq(index,=C2=A0msr_info->data); =C2=A0 else - wrmsrq(index,=C2=A0msr_info->data); + err=C2=A0=3D=C2=A0wrmsrq_safe(index,=C2=A0msr_info->data); =C2=A0 __set_bit(INTEL_PMC_IDX_FIXED_VLBR,=C2=A0vcpu_to_pmu(vcpu)->pmc_in_u= se); =C2=A0 local_irq_enable(); - return=C2=A0true; + return=C2=A0!err; =C2=A0 } =C2=A0 clear_bit(INTEL_PMC_IDX_FIXED_VLBR,=C2=A0vcpu_to_pmu(vcpu)->pmc_in_u= se); =C2=A0 local_irq_enable(); base-commit:=C2=A09f2a49c511cb05b85745e1578e4fd425bff87f58 --=C2=A0 2.54.0.823.g6e5bcc1fc9-goog