qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Debian 7.8.0 SPARC64 on qemu - anything i can do to spe


From: Richard Henderson
Subject: Re: [Qemu-devel] Debian 7.8.0 SPARC64 on qemu - anything i can do to speedup the emulation?
Date: Thu, 20 Aug 2015 10:19:23 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0

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~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]