From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751915AbbIOHQu (ORCPT ); Tue, 15 Sep 2015 03:16:50 -0400 Received: from e06smtp11.uk.ibm.com ([195.75.94.107]:50540 "EHLO e06smtp11.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751480AbbIOHQs (ORCPT ); Tue, 15 Sep 2015 03:16:48 -0400 X-Helo: d06dlp01.portsmouth.uk.ibm.com X-MailFrom: borntraeger@de.ibm.com X-RcptTo: linux-kernel@vger.kernel.org Subject: Re: [PATCH] KVM: fix polling for guest halt continued even if disable it To: Wanpeng Li , Paolo Bonzini References: Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org From: Christian Borntraeger Message-ID: <55F7C5DB.80903@de.ibm.com> Date: Tue, 15 Sep 2015 09:16:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15091507-0041-0000-0000-000005CF0E0C Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 14.09.2015 um 11:38 schrieb Wanpeng Li: > If there is already some polling ongoing, it's impossible to disable the > polling, since as soon as somebody sets halt_poll_ns to 0, polling will > never stop, as grow and shrink are only handled if halt_poll_ns is != 0. > > This patch fix it by reset vcpu->halt_poll_ns in order to stop polling > when polling is disabled. > > Reported-by: Christian Borntraeger > Signed-off-by: Wanpeng Li > --- > virt/kvm/kvm_main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 4662a88..f756cac0 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -2012,7 +2012,8 @@ out: > else if (vcpu->halt_poll_ns < halt_poll_ns && > block_ns < halt_poll_ns) > grow_halt_poll_ns(vcpu); > - } > + } else > + vcpu->halt_poll_ns = 0; > > trace_kvm_vcpu_wakeup(block_ns, waited); > } > Tested-by: Christian Borntraeger