From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=42382 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OBXnH-0007Cj-0d for qemu-devel@nongnu.org; Mon, 10 May 2010 14:33:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OBXn8-0001HM-KG for qemu-devel@nongnu.org; Mon, 10 May 2010 14:33:30 -0400 Received: from mail-pw0-f45.google.com ([209.85.160.45]:49492) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OBXn5-0001GD-5Q for qemu-devel@nongnu.org; Mon, 10 May 2010 14:33:22 -0400 Received: by pwj9 with SMTP id 9so1565251pwj.4 for ; Mon, 10 May 2010 11:33:15 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4BE7D475.6020205@siriusit.co.uk> References: <4BE7D475.6020205@siriusit.co.uk> Date: Mon, 10 May 2010 21:33:15 +0300 Message-ID: Subject: Re: [Qemu-devel] Re: sparc64 lazy conditional codes evaluation From: Blue Swirl Content-Type: text/plain; charset=UTF-8 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Mark Cave-Ayland Cc: qemu-devel On 5/10/10, Mark Cave-Ayland wrote: > Blue Swirl wrote: > > > > Thanks a lot, with this patch my tests passed! I applied the combined > patch. > > > > Yes, I definitely see an improvement with this patch - at least my Debian > lenny SPARC boot cd doesn't randomly kernel panic any more. It looks as if > it now just can't find /init which could just be due to an incorrect device > mapping somewhere. > > > > I also did a bit of refactoring to get the original Sparc64 issue fixed. > > > > However, one thing I did notice is that this does introduce a noticeable > performance penalty. With OpenBIOS SVN head I see the following: > > With commit 72139e83a98eba2bfed2dbc2db2818fb19e47ca0 (just > before the changes): > > [ 59.225406] Failed to execute /init > [ 59.304088] Kernel panic - not syncing: No init found. Try passing > init= option to kernel. > [ 59.450313] Press Stop-A (L1-A) to return to the boot prom > > With commit 5a834bb47c373e887de5210b7ceae96e1ef413f7 (just > after the changes): > > [ 70.384466] Failed to execute /init > [ 70.474804] Kernel panic - not syncing: No init found. Try passing > init= option to kernel. > > > So while it's technically correct, it seems to have added ~15% overhead to > the emulation :( Guest time can be unreliable, it could also indicate that Linux executes a lot more timer interrupts. Could you retest and measure the wall clock time? I think the C flag change should only increase performance. The next commit may have negative effects because more work is done every interrupt, but it's also more correct now.