Patch "KVM: x86: do not set st->preempted when going back to user space" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    KVM: x86: do not set st->preempted when going back to user space

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kvm-x86-do-not-set-st-preempted-when-going-back-to-user-space.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From stable-owner@xxxxxxxxxxxxxxx Wed May 10 20:16:31 2023
From: Rishabh Bhatnagar <risbhat@xxxxxxxxxx>
Date: Wed, 10 May 2023 18:15:43 +0000
Subject: KVM: x86: do not set st->preempted when going back to user space
To: <gregkh@xxxxxxxxxxxxxxxxxxx>, <stable@xxxxxxxxxxxxxxx>
Cc: <lee@xxxxxxxxxx>, <seanjc@xxxxxxxxxx>, <kvm@xxxxxxxxxxxxxxx>, <bp@xxxxxxxxx>, <mingo@xxxxxxxxxx>, <tglx@xxxxxxxxxxxxx>, <pbonzini@xxxxxxxxxx>, <vkuznets@xxxxxxxxxx>, <wanpengli@xxxxxxxxxxx>, <jmattson@xxxxxxxxxx>, <joro@xxxxxxxxxx>, Rishabh Bhatnagar <risbhat@xxxxxxxxxx>, Allen Pais <apais@xxxxxxxxxxxxxxxxxxx>
Message-ID: <20230510181547.22451-6-risbhat@xxxxxxxxxx>

From: Rishabh Bhatnagar <risbhat@xxxxxxxxxx>

From: Paolo Bonzini <pbonzini@xxxxxxxxxx>

commit 54aa83c90198e68eee8b0850c749bc70efb548da upstream.

Similar to the Xen path, only change the vCPU's reported state if the vCPU
was actually preempted.  The reason for KVM's behavior is that for example
optimistic spinning might not be a good idea if the guest is doing repeated
exits to userspace; however, it is confusing and unlikely to make a difference,
because well-tuned guests will hardly ever exit KVM_RUN in the first place.

Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
[risbhat@xxxxxxxxxx: Don't check for xen msr as support is not available
and skip the SEV-ES condition]
Signed-off-by: Rishabh Bhatnagar <risbhat@xxxxxxxxxx>
Tested-by: Allen Pais <apais@xxxxxxxxxxxxxxxxxxx>
Acked-by: Sean Christopherson <seanjc@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 arch/x86/kvm/x86.c |   18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4139,16 +4139,18 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *
 {
 	int idx;
 
-	if (vcpu->preempted)
+	if (vcpu->preempted) {
 		vcpu->arch.preempted_in_kernel = !kvm_x86_ops.get_cpl(vcpu);
 
-	/*
-	 * kvm_memslots() will be called by
-	 * kvm_write_guest_offset_cached() so take the srcu lock.
-	 */
-	idx = srcu_read_lock(&vcpu->kvm->srcu);
-	kvm_steal_time_set_preempted(vcpu);
-	srcu_read_unlock(&vcpu->kvm->srcu, idx);
+		/*
+		 * Take the srcu lock as memslots will be accessed to check the gfn
+		 * cache generation against the memslots generation.
+		 */
+		idx = srcu_read_lock(&vcpu->kvm->srcu);
+		kvm_steal_time_set_preempted(vcpu);
+		srcu_read_unlock(&vcpu->kvm->srcu, idx);
+	}
+
 	kvm_x86_ops.vcpu_put(vcpu);
 	vcpu->arch.last_host_tsc = rdtsc();
 	/*


Patches currently in stable-queue which might be from stable-owner@xxxxxxxxxxxxxxx are

queue-5.10/kvm-fix-steal-time-asm-constraints.patch
queue-5.10/kvm-x86-ensure-pv-tlb-flush-tracepoint-reflects-kvm-behavior.patch
queue-5.10/blk-crypto-make-blk_crypto_evict_key-more-robust.patch
queue-5.10/kvm-x86-do-not-report-preemption-if-the-steal-time-cache-is-stale.patch
queue-5.10/kvm-x86-do-not-set-st-preempted-when-going-back-to-user-space.patch
queue-5.10/kvm-x86-move-guest_pv_has-out-of-user_access-section.patch
queue-5.10/kvm-x86-fix-recording-of-guest-steal-time-preempted-status.patch
queue-5.10/blk-mq-release-crypto-keyslot-before-reporting-i-o-complete.patch
queue-5.10/kvm-x86-revalidate-steal-time-cache-if-msr-value-changes.patch
queue-5.10/blk-crypto-make-blk_crypto_evict_key-return-void.patch
queue-5.10/kvm-x86-remove-obsolete-disabling-of-page-faults-in-kvm_arch_vcpu_put.patch



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux