From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933902AbbIDWiw (ORCPT ); Fri, 4 Sep 2015 18:38:52 -0400 Received: from blu004-omc1s11.hotmail.com ([65.55.116.22]:57457 "EHLO BLU004-OMC1S11.hotmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933022AbbIDWiu (ORCPT ); Fri, 4 Sep 2015 18:38:50 -0400 X-TMN: [PPLFF6B8dj3MrNoWVRHO01pkxpu6GS1aeTmWwv5Ajgc=] X-Originating-Email: [wanpeng.li@hotmail.com] Message-ID: Subject: Re: [PATCH v7 2/3] KVM: dynamic halt-polling To: Paolo Bonzini References: <1441289259-32072-1-git-send-email-wanpeng.li@hotmail.com> CC: David Matlack , kvm@vger.kernel.org, linux-kernel@vger.kernel.org From: Wanpeng Li Date: Sat, 5 Sep 2015 06:38:41 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 04 Sep 2015 22:38:48.0897 (UTC) FILETIME=[775A6B10:01D0E762] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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