blob: b773006c4a8613113d0b32d264a17333a936dafb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
graphic: 0.714
instruction: 0.619
device: 0.548
semantic: 0.335
mistranslation: 0.224
KVM: 0.215
boot: 0.177
network: 0.160
vnc: 0.136
other: 0.105
socket: 0.104
assembly: 0.037
performance degradation in tcg since Meson switch
The buildsys conversion to Meson (1d806cef0e3..7fd51e68c34)
introduced a degradation in performance in some TCG targets:
--------------------------------------------------------
Test Program: matmult_double
--------------------------------------------------------
Target Instructions Previous Latest
1d806cef 7fd51e68
---------- -------------------- ---------- ----------
alpha 3 233 957 639 ----- +7.472%
m68k 3 919 110 506 ----- +18.433%
--------------------------------------------------------
Original report from Ahmed Karaman with further testing done
by Aleksandar Markovic:
https://<email address hidden>/msg740279.html
Can I get a sample statically linked m68k binary that exhibits this effect?
I get
$ qemu-m68k ./matmult_double-m68k
Error while loading /home/pbonzini/matmult_double-m68k: Permission denied
Paolo: what are the permissions on matmult_double-m68k on your local fs? (needs to be readable/executable by you)
Uff, of course...
This patch shold fix the regression:
diff --git a/configure b/configure
index 0004c46525..0786144043 100755
--- a/configure
+++ b/configure
@@ -7414,6 +7414,7 @@ NINJA=${ninja:-$PWD/ninjatool} $meson setup \
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
-Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
+ -Db_staticpic=$(if test "$pie" = yes; then echo true; else echo false; fi) \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
-Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \
-Dkvm=$kvm -Dhax=$hax -Dwhpx=$whpx -Dhvf=$hvf \
This was fixed initially by commit 0c3dd50eaecbfe2, which is the change suggested in Paolo's comment #6, and then refined by commit a5cb7c5afe717d4.
Released with QEMU v5.2.0.
|