All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][v2] KVM: use cpu_relax when halt polling
@ 2021-07-27 11:12 Li RongQing
  2021-07-27 18:15 ` Pankaj Gupta
  0 siblings, 1 reply; 5+ messages in thread
From: Li RongQing @ 2021-07-27 11:12 UTC (permalink / raw)
  To: kvm, pbonzini, seanjc

SMT siblings share caches and other hardware, and busy halt polling
will degrade its sibling performance if its sibling is working

Sean Christopherson suggested as below:

"Rather than disallowing halt-polling entirely, on x86 it should be
sufficient to simply have the hardware thread yield to its sibling(s)
via PAUSE.  It probably won't get back all performance, but I would
expect it to be close.
This compiles on all KVM architectures, and AFAICT the intended usage
of cpu_relax() is identical for all architectures."

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
---
diff v1: using cpu_relax, rather that stop halt-polling

 virt/kvm/kvm_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 7d95126..1679728 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3110,6 +3110,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
 					++vcpu->stat.generic.halt_poll_invalid;
 				goto out;
 			}
+			cpu_relax();
 			poll_end = cur = ktime_get();
 		} while (kvm_vcpu_can_poll(cur, stop));
 	}
-- 
2.9.4


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

end of thread, other threads:[~2021-07-28  6:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-27 11:12 [PATCH][v2] KVM: use cpu_relax when halt polling Li RongQing
2021-07-27 18:15 ` Pankaj Gupta
2021-07-28  2:57   ` 答复: " Li,Rongqing
2021-07-28  6:12     ` Pankaj Gupta
2021-07-28  6:46       ` 答复: " Li,Rongqing

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.