linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 2/4] KVM: X86: Bail out of direct yield in case of under-comitted scenarios
@ 2021-05-13  1:59 Wanpeng Li
  2021-05-13  1:59 ` [PATCH v2 3/4] KVM: X86: Fix vCPU preempted state from guest's point of view Wanpeng Li
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Wanpeng Li @ 2021-05-13  1:59 UTC (permalink / raw)
  To: linux-kernel, kvm
  Cc: Paolo Bonzini, Sean Christopherson, Vitaly Kuznetsov, Wanpeng Li,
	Jim Mattson, Joerg Roedel

From: Wanpeng Li <wanpengli@tencent.com>

In case of under-comitted scenarios, vCPU can get scheduling easily, 
kvm_vcpu_yield_to adds extra overhead, we can observe a lot of race 
between vcpu->ready is true and yield fails due to p->state is 
TASK_RUNNING. Let's bail out in such scenarios by checking the length 
of current cpu runqueue, it can be treated as a hint of under-committed 
instead of guarantee of accuracy.

Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
---
v1 -> v2:
 * move the check after attempted counting
 * update patch description

 arch/x86/kvm/x86.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 9b6bca6..dfb7c32 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8360,6 +8360,9 @@ static void kvm_sched_yield(struct kvm_vcpu *vcpu, unsigned long dest_id)
 
 	vcpu->stat.directed_yield_attempted++;
 
+	if (single_task_running())
+		goto no_yield;
+
 	rcu_read_lock();
 	map = rcu_dereference(vcpu->kvm->arch.apic_map);
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-05-17  1:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-13  1:59 [PATCH v2 2/4] KVM: X86: Bail out of direct yield in case of under-comitted scenarios Wanpeng Li
2021-05-13  1:59 ` [PATCH v2 3/4] KVM: X86: Fix vCPU preempted state from guest's point of view Wanpeng Li
2021-05-13  1:59 ` [PATCH v2 4/4] KVM: x86: hyper-v: Task srcu lock when accessing kvm_memslots() Wanpeng Li
2021-05-14 21:32 ` [PATCH v2 2/4] KVM: X86: Bail out of direct yield in case of under-comitted scenarios David Matlack
2021-05-17  1:03   ` Wanpeng Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).