Re: [PATCH v7 2/3] KVM: dynamic halt-polling

2015-09-06 Thread Wanpeng Li
On 9/6/15 10:32 PM, Paolo Bonzini wrote: On 05/09/2015 00:38, Wanpeng Li wrote: @@ -1940,11 +1975,16 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) * arrives. */ if (kvm_vcpu_check_block(vcpu) < 0) { +polled = true;

Re: [PATCH v7 2/3] KVM: dynamic halt-polling

2015-09-06 Thread Paolo Bonzini
On 05/09/2015 00:38, Wanpeng Li wrote: >> >> @@ -1940,11 +1975,16 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) >>* arrives. >>*/ >> if (kvm_vcpu_check_block(vcpu) < 0) { >> +polled = true; >>

Re: [PATCH v7 2/3] KVM: dynamic halt-polling

2015-09-04 Thread Wanpeng Li
Hi Paolo, On 9/3/15 10:07 PM, Wanpeng Li wrote: [...] static int kvm_vcpu_check_block(struct kvm_vcpu *vcpu) { if (kvm_arch_vcpu_runnable(vcpu)) { @@ -1928,7 +1962,8 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) { ktime_t start, cur; DEFINE_WAIT(wait); - bool

[PATCH v7 2/3] KVM: dynamic halt-polling

2015-09-03 Thread Wanpeng Li
There is a downside of always-poll since poll is still happened for idle vCPUs which can waste cpu usage. This patchset add the ability to adjust halt_poll_ns dynamically, to grow halt_poll_ns when shot halt is detected, and to shrink halt_poll_ns when long halt is detected. There are two new