From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 04/22] Leave inner main_loop faster on pending requests Date: Mon, 31 Jan 2011 11:52:26 +0200 Message-ID: <4D46865A.2090405@redhat.com> References: <34720dd344455d0abee575d399caedebcc099e5a.1296133797.git.jan.kiszka@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm@vger.kernel.org, qemu-devel@nongnu.org To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:8108 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751112Ab1AaJwe (ORCPT ); Mon, 31 Jan 2011 04:52:34 -0500 In-Reply-To: <34720dd344455d0abee575d399caedebcc099e5a.1296133797.git.jan.kiszka@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/27/2011 03:09 PM, Jan Kiszka wrote: > If there is any pending request that requires us to leave the inner loop > if main_loop, makes sure we do this as soon as possible by enforcing > non-blocking IO processing. > > At this change, move variable definitions out of the inner loop to > improve readability. > > Signed-off-by: Jan Kiszka > --- > vl.c | 11 +++++++---- > 1 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/vl.c b/vl.c > index 5fad700..2ebc55b 100644 > --- a/vl.c > +++ b/vl.c > @@ -1384,18 +1384,21 @@ qemu_irq qemu_system_powerdown; > > static void main_loop(void) > { > + bool nonblocking = false; > +#ifdef CONFIG_PROFILER > + int64_t ti; > +#endif > int r; > > qemu_main_loop_start(); > > for (;;) { > do { > - bool nonblocking = false; > -#ifdef CONFIG_PROFILER > - int64_t ti; > -#endif > #ifndef CONFIG_IOTHREAD > nonblocking = cpu_exec_all(); > + if (!vm_can_run()) { > + nonblocking = true; > + } Doesn't this cause vmstop to spin? We'll never execute main_loop_wait(false) if I read the code correctly? -- error compiling committee.c: too many arguments to function