From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:33556) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UO8q9-0001ez-6s for qemu-devel@nongnu.org; Fri, 05 Apr 2013 11:46:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UO8q2-0005zE-Pn for qemu-devel@nongnu.org; Fri, 05 Apr 2013 11:46:09 -0400 Received: from e23smtp08.au.ibm.com ([202.81.31.141]:40637) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UO8q2-0005yo-8a for qemu-devel@nongnu.org; Fri, 05 Apr 2013 11:46:02 -0400 Received: from /spool/local by e23smtp08.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 6 Apr 2013 01:43:49 +1000 Received: from d23relay04.au.ibm.com (d23relay04.au.ibm.com [9.190.234.120]) by d23dlp01.au.ibm.com (Postfix) with ESMTP id 471932CE804C for ; Sat, 6 Apr 2013 02:45:54 +1100 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay04.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r35FWeWG66584596 for ; Sat, 6 Apr 2013 02:32:41 +1100 Received: from d23av03.au.ibm.com (loopback [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r35FjqUU016542 for ; Sat, 6 Apr 2013 02:45:52 +1100 From: Anthony Liguori In-Reply-To: <515EE7FE.9090202@redhat.com> References: <1365169560-11012-1-git-send-email-aliguori@us.ibm.com> <515EE7FE.9090202@redhat.com> Date: Fri, 05 Apr 2013 10:45:47 -0500 Message-ID: <87d2u9c76c.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH] main-loop: drop the BQL if the I/O appears to be spinning List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: Paolo Bonzini , qemu-devel@nongnu.org Eric Blake writes: > On 04/05/2013 07:46 AM, Anthony Liguori wrote: >> The char-flow refactoring introduced a busy-wait that depended on >> an action from the VCPU thread. However, the VCPU thread could >> never take that action because the busy-wait starved the VCPU thread >> of the BQL because it never dropped the mutex while running select. >> >> Paolo doesn't want to drop this optimization for fear that we will >> stop detecting these busy waits. I'm afraid to keep this optimization >> even with the busy-wait fixed because I think a similar problem can >> occur just with heavy I/O thread load manifesting itself as VCPU pauses. >> >> As a compromise, introduce an artificial timeout after a thousand >> iterations but print a rate limited warning when this happens. This >> let's us still detect when this condition occurs without it being >> a fatal error. >> > >> + * print a message to the screen. If we run into this condition, create >> + * an fake timeout in order to give the VCPU threads a chance to run. > > s/an fake/a fake/ Drat, I proof read the commit message hoping to avoid such a mistake but should have reread the comment :-) Regards, Anthony Liguori > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org