Commit ef2e18ef authored by Sean Christopherson's avatar Sean Christopherson
Browse files

KVM: x86: Unconditionally set l1tf_flush_l1d during vCPU load



Always set l1tf_flush_l1d during kvm_arch_vcpu_load() instead of setting
it only when the vCPU is being scheduled back in.  The flag is processed
only when VM-Enter is imminent, and KVM obviously needs to load the vCPU
before VM-Enter, so attempting to precisely set l1tf_flush_l1d provides no
meaningful value.  I.e. the flag _will_ be set either way, it's simply a
matter of when.

Acked-by: default avatarKai Huang <kai.huang@intel.com>
Link: https://lore.kernel.org/r/20240522014013.1672962-6-seanjc@google.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent 2a27c431
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -5006,13 +5006,12 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
{
	struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);

	if (vcpu->scheduled_out) {
	vcpu->arch.l1tf_flush_l1d = true;
		if (pmu->version && unlikely(pmu->event_count)) {

	if (vcpu->scheduled_out && pmu->version && pmu->event_count) {
		pmu->need_cleanup = true;
		kvm_make_request(KVM_REQ_PMU, vcpu);
	}
	}

	/* Address WBINVD may be executed by guest */
	if (need_emulate_wbinvd(vcpu)) {