Messages in this thread | | | Subject | Re: [PATCH v7 2/3] KVM: dynamic halt-polling | From | Wanpeng Li <> | Date | Sat, 5 Sep 2015 06:38:41 +0800 |
| |
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 waited = false; > + bool polled = false, waited = false; > + u64 poll_ns = 0, wait_ns = 0, block_ns = 0; > > start = cur = ktime_get(); > if (vcpu->halt_poll_ns) { > @@ -1940,11 +1975,16 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) > * arrives. > */ > if (kvm_vcpu_check_block(vcpu) < 0) { > + polled = true; > ++vcpu->stat.halt_successful_poll; > - goto out; > + break; > } > cur = ktime_get(); > } while (single_task_running() && ktime_before(cur, stop)); > + > + poll_ns = ktime_to_ns(cur) - ktime_to_ns(start); > + if (polled) > + goto out; >
Please move poll_ns caculation under if() when you applied, as I explained in reply to v6.
Regards, Wanpeng Li
| |