From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54577) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZSTUz-0002fD-5E for qemu-devel@nongnu.org; Thu, 20 Aug 2015 13:19:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZSTUt-0008Ck-Vm for qemu-devel@nongnu.org; Thu, 20 Aug 2015 13:19:32 -0400 Received: from mail-qk0-x22d.google.com ([2607:f8b0:400d:c09::22d]:36516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZSTUt-0008Cf-Qg for qemu-devel@nongnu.org; Thu, 20 Aug 2015 13:19:27 -0400 Received: by qkep139 with SMTP id p139so18843829qke.3 for ; Thu, 20 Aug 2015 10:19:26 -0700 (PDT) Sender: Richard Henderson References: <55B9DD60.8020801@gmx.net> <20150730085500.GV11361@aurel32.net> <20150730155003.GE30591@aurel32.net> <20150731154323.GD23508@aurel32.net> <20150803091716.GF30591@aurel32.net> <55D37189.3010809@twiddle.net> <20150819110010.GJ23508@aurel32.net> From: Richard Henderson Message-ID: <55D60C1B.9010502@twiddle.net> Date: Thu, 20 Aug 2015 10:19:23 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] Debian 7.8.0 SPARC64 on qemu - anything i can do to speedup the emulation? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Artyom Tarasenko , Aurelien Jarno Cc: qemu-devel , Dennis Luehring On 08/19/2015 07:41 AM, Artyom Tarasenko wrote: > Without the patch: > > time g++ -DHAVE_CONFIG_H -I. -I../binutils-gdb/gold > -I../binutils-gdb/gold -I../binutils-gdb/gold/../include > -I../binutils-gdb/gold/../elfcpp > -DLOCALEDIR="\"/usr/local/share/locale\"" > -DBINDIR="\"/usr/local/bin\"" -DTOOLBINDIR="\"/usr/local//bin\"" > -DTOOLLIBDIR="\"/usr/local//lib\"" -W -Wall -Werror > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -frandom-seed=tilegx.o > -I../binutils-gdb/gold/../zlib -g -O2 -MT tilegx.o -MD -MP -MF > .deps/tilegx.Tpo -c -o tilegx.o ../binutils-gdb/gold/tilegx.cc > > real 18m31.407s > user 18m23.661s > sys 0m6.784s > > The patch surely improves the situation, tcg_optimize in the perf top > takes ~7% (instead of~12%), and the only function marked red by > perf-top is init_temp_info(). So with the patch: > > real 17m46.380s > user 17m37.522s > sys 0m7.120s > > > And if I completely disable optimizer (// #define > USE_TCG_OPTIMIZATIONS in tcg.c), it's still quite faster: > > real 14m17.668s > user 14m10.241s > sys 0m6.060s This isn't surprising, because at the moment tcg optimizations are almost completely ineffective for sparc. The way the register windows are implemented means that there are very few proper tcg temporaries to optimize. I've just updated an old branch that attempts to cure this. It creates proper tcg temporaries for the windowed registers, and uses a bit of recursion to find the place at which they should be stored. git://github.com/rth7680/qemu.git tcg-indirect With a few quick unscientific tests, it appears to help. It would be nice to put that branch side-by-side with your tests above. r~