From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JZEFj-0002Xc-7c for qemu-devel@nongnu.org; Tue, 11 Mar 2008 19:51:27 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JZEFh-0002XJ-VL for qemu-devel@nongnu.org; Tue, 11 Mar 2008 19:51:26 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JZEFh-0002X7-Mb for qemu-devel@nongnu.org; Tue, 11 Mar 2008 19:51:25 -0400 Received: from hall.aurel32.net ([88.191.38.19]) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JZEFh-0004i5-7c for qemu-devel@nongnu.org; Tue, 11 Mar 2008 19:51:25 -0400 Date: Wed, 12 Mar 2008 00:51:26 +0100 From: Aurelien Jarno Subject: Re: [Qemu-devel] Re: 2.6.24 says "serial8250: too much work for irq4" a lot. Message-ID: <20080311235126.GB32706@volta.aurel32.net> References: <200802051455.10831.rob@landley.net> <47AE1CC5.10700@zytor.com> <200802101126.07740.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <200802101126.07740.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Blue Swirl , "H. Peter Anvin" On Sun, Feb 10, 2008 at 11:26:06AM +0000, Paul Brook wrote: > On Sunday 10 February 2008, Blue Swirl wrote: > > On 2/9/08, H. Peter Anvin wrote: > > > Blue Swirl wrote: > > > >> If you look at the patch, there are no timing dependencies; the only > > > >> parameter is the depth of the virtual queue. The exhaustion is > > > >> completely controlled by target OS access patterns. > > > > > > > > Thanks, this clarified the difference. But I'll rephrase my original > > > > comment: > > > > > > > > The patch looks OK, but the simulated FIFO exhaustion should benefit > > > > all devices, as > > > > discussed here: > > > > http://lists.gnu.org/archive/html/qemu-devel/2007-12/msg00283.html > > > > > > The difference is you *can't* do that in a general layer. > > > > What makes you think that is impossible? > > IIUC the proposed patch makes the serial driver return an empty FIFO exactly > once, them immediately continue receiving data. Throughput should be > approximately the same, you've just got a bit of extra overhead to process > the additional interrupts. This is very different to the previous patch > which did time-based throughput limiting. > > You can't do this in generic code because there's no way to guess when the > guest os has seen the FIFO empty condition. The best you can do is pause for > some arbitrary length of time, which is both unreliable (the guest OS may not > have got to far enough yet, especially if the host machine is heavily > loaded), and has a significant negative impact on throughput. > > > Also win2k install hack in ide.c seems to be related to this problem, > > so even more generic solution would be desirable. > > IIUC the win2k hack is an actual timing problem. The win2k IDE drivers are > buggy, and fall over if the drive responds too soon. > Is everybody convinced about this patch now? I would really like to see it in the CVS, as it greatly improves the usability of the serial consoles on targets running GNU/Linux (and probably OSes). -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@debian.org | aurelien@aurel32.net `- people.debian.org/~aurel32 | www.aurel32.net