From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NJNcp-0002YK-2G for qemu-devel@nongnu.org; Sat, 12 Dec 2009 03:46:51 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NJNck-0002U3-BZ for qemu-devel@nongnu.org; Sat, 12 Dec 2009 03:46:50 -0500 Received: from [199.232.76.173] (port=43864 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NJNck-0002Tv-73 for qemu-devel@nongnu.org; Sat, 12 Dec 2009 03:46:46 -0500 Received: from mail-gx0-f223.google.com ([209.85.217.223]:48008) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NJNck-00066g-0R for qemu-devel@nongnu.org; Sat, 12 Dec 2009 03:46:46 -0500 Received: by gxk23 with SMTP id 23so2925885gxk.2 for ; Sat, 12 Dec 2009 00:46:45 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: Blue Swirl Date: Sat, 12 Dec 2009 10:46:25 +0200 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: [Qemu-devel] Re: irq latency and tcg List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Artyom Tarasenko , Paul Brook Cc: qemu-devel On Wed, Dec 9, 2009 at 2:30 PM, Artyom Tarasenko wrote: > 2009/12/7 Blue Swirl : >> On Mon, Dec 7, 2009 at 3:30 PM, Artyom Tarasenko >> wrote: >>> Can it be that qemu (-system-sparc in my case, but I guess it's more >>> or less similar on all platforms) reacts to irqs slower than a real >>> hardware due to tcg optimizations? >>> >>> I see one test pattern which fails on qemu: >>> >>> >>> nop * N >>> >>> >>> What I observe is that the proper interrupt does take a place, but >>> after the check, so no-one expects it anymore. >>> Is there a way to reduce the interrupt latency? Or maybe there is a >>> good substitute to a nop*N, so that irq would definitely get through >>> in the mean time? >> >> On Sparc, nops do not generate any code at all. > > But "qemu: fatal: Raised interrupt while not in I/O function" is still > a bug, right? According to comment in exec-all.h: /* Deterministic execution requires that IO only be performed on the last instruction of a TB so that interrupts take effect immediately. */ Sparc generator must then violate this assumption. Is the assumption valid also when not using icount and should the check be enabled for all cases, not just icount?