* [PATCH] KVM: VMX: Update PT MSR intercepts during filter change iff PT in host+guest
@ 2022-07-12 1:58 Sean Christopherson
2022-07-12 3:23 ` Xiaoyao Li
0 siblings, 1 reply; 2+ messages in thread
From: Sean Christopherson @ 2022-07-12 1:58 UTC (permalink / raw)
To: Sean Christopherson, Paolo Bonzini; +Cc: kvm, linux-kernel, Xiaoyao Li
Update the Processor Trace (PT) MSR intercepts during a filter change if
and only if PT may be exposed to the guest, i.e. only if KVM is operating
in the so called "host+guest" mode where PT can be used simultaneously by
both the host and guest. If PT is in system mode, the host is the sole
owner of PT and the MSRs should never be passed through to the guest.
Luckily the missed check only results in unnecessary work, as select RTIT
MSRs are passed through only when RTIT tracing is enabled "in" the guest,
and tracing can't be enabled in the guest when KVM is in system mode
(writes to guest.MSR_IA32_RTIT_CTL are disallowed).
Cc: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
arch/x86/kvm/vmx/vmx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 74ca64e97643..e6ab2c2c4d3b 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -4004,7 +4004,9 @@ static void vmx_msr_filter_changed(struct kvm_vcpu *vcpu)
vmx_disable_intercept_for_msr(vcpu, msr, MSR_TYPE_W);
}
- pt_update_intercept_for_msr(vcpu);
+ /* PT MSRs can be passed through iff PT is exposed to the guest. */
+ if (vmx_pt_mode_is_host_guest())
+ pt_update_intercept_for_msr(vcpu);
}
static inline void kvm_vcpu_trigger_posted_interrupt(struct kvm_vcpu *vcpu,
base-commit: 5406e590ac8fa33e390616031370806cdbcc5791
--
2.37.0.144.g8ac04bfd2-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] KVM: VMX: Update PT MSR intercepts during filter change iff PT in host+guest
2022-07-12 1:58 [PATCH] KVM: VMX: Update PT MSR intercepts during filter change iff PT in host+guest Sean Christopherson
@ 2022-07-12 3:23 ` Xiaoyao Li
0 siblings, 0 replies; 2+ messages in thread
From: Xiaoyao Li @ 2022-07-12 3:23 UTC (permalink / raw)
To: Sean Christopherson, Paolo Bonzini; +Cc: kvm, linux-kernel
On 7/12/2022 9:58 AM, Sean Christopherson wrote:
> Update the Processor Trace (PT) MSR intercepts during a filter change if
> and only if PT may be exposed to the guest, i.e. only if KVM is operating
> in the so called "host+guest" mode where PT can be used simultaneously by
> both the host and guest. If PT is in system mode, the host is the sole
> owner of PT and the MSRs should never be passed through to the guest.
>
> Luckily the missed check only results in unnecessary work, as select RTIT
> MSRs are passed through only when RTIT tracing is enabled "in" the guest,
> and tracing can't be enabled in the guest when KVM is in system mode
> (writes to guest.MSR_IA32_RTIT_CTL are disallowed).
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
> Cc: Xiaoyao Li <xiaoyao.li@intel.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
> arch/x86/kvm/vmx/vmx.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
> index 74ca64e97643..e6ab2c2c4d3b 100644
> --- a/arch/x86/kvm/vmx/vmx.c
> +++ b/arch/x86/kvm/vmx/vmx.c
> @@ -4004,7 +4004,9 @@ static void vmx_msr_filter_changed(struct kvm_vcpu *vcpu)
> vmx_disable_intercept_for_msr(vcpu, msr, MSR_TYPE_W);
> }
>
> - pt_update_intercept_for_msr(vcpu);
> + /* PT MSRs can be passed through iff PT is exposed to the guest. */
> + if (vmx_pt_mode_is_host_guest())
> + pt_update_intercept_for_msr(vcpu);
> }
>
> static inline void kvm_vcpu_trigger_posted_interrupt(struct kvm_vcpu *vcpu,
>
> base-commit: 5406e590ac8fa33e390616031370806cdbcc5791
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-07-12 3:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-12 1:58 [PATCH] KVM: VMX: Update PT MSR intercepts during filter change iff PT in host+guest Sean Christopherson
2022-07-12 3:23 ` Xiaoyao Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox