On 10/03/2022 09.36, Thomas Huth wrote:
On 09/03/2022 12.22, Alex Bennée wrote:
With -cpu max we get a warning:
qemu-s390x: warning: 'msa5-base' requires 'kimd-sha-512'.
But dropping the -cpu max and it still runs fine.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Thomas Huth <thuth@redhat.com>
---
tests/tcg/s390x/Makefile.target | 2 --
1 file changed, 2 deletions(-)
diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target
index 257c568c58..7aa502a557 100644
--- a/tests/tcg/s390x/Makefile.target
+++ b/tests/tcg/s390x/Makefile.target
@@ -34,6 +34,4 @@ sha512-mvx: CFLAGS=-march=z13 -mvx -O3
sha512-mvx: sha512.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
-run-sha512-mvx: QEMU_OPTS+=-cpu max
-
TESTS+=sha512-mvx
Ok, this helps to get rid of the warnings, thus feel free to add:
Tested-by: Thomas Huth <thuth@redhat.com>
However, the error still persists. I now had a closer look by running the test with
"qemu-s390x" on my z15 machine directly, and all tests are failing! The problem happens
with both, gcc v11.2.1 and clang v13.0.1. The problem goes away (i.e. test works fine)
if I compile the code with -O1 instead of -O3, or if I use GCC v8.5 instead. I'll try to
find out more, but as a temporary workaround, we could also switch to -O1 instead of -O3.
I noticed that the problem does not occur when running the test natively
on my s390x box, or via qemu-s390x on my x86 laptop, or when running it
via qemu-s390x v6.1.0 on my s390x box. So it's something wrong in the TCG
backend, I think, and I was able to bisect the issue down to this commit
here:
$ git bisect bad
9bca986df88b8ea46b100e3d21cc9e653c83e0b3 is the first bad commit
commit 9bca986df88b8ea46b100e3d21cc9e653c83e0b3
Author: Richard Henderson <richard.henderson@linaro.org>
Date: Mon Sep 14 20:36:36 2020 -0700
tcg/s390x: Implement TCG_TARGET_HAS_bitsel_vec
Richard, could you please have a look? I've uploaded my statically linked
binary that shows the problem here:
http://people.redhat.com/~thuth/data/sha512
When running on a z15 s390x host with current QEMU master, the test fails:
$ ./qemu-s390x -cpu max ~/sha512
qemu-s390x: warning: 'msa5-base' requires 'kimd-sha-512'.
qemu-s390x: warning: 'msa5-base' requires 'klmd-sha-512'.
1..1
h : 0000: 38 31 a6 a6 15 5e 50 9d ee 59 a7 f4 51 eb 35 32
81...^P..Y..Q.52
h : 0010: 4d 8f 8f 2d f6 e3 70 88 94 74 0f 98 fd ee 23 88
M..-..p..t....#.
h : 0020: 9f 4d e5 ad b0 c5 01 0d fb 55 5c da 77 c8 ab 5d
.M.......U\.w..]
h : 0030: c9 02 09 4c 52 de 32 78 f3 5a 75 eb c2 5f 09 3a
...LR.2x.Zu.._.:
got : 0000: 7b 47 7b 48 1a 49 1a 49 79 48 7d 7f 7d 47 79 7d
{G{H.I.IyH}.}Gy}
got : 0010: 1a 7f 7d 40 1a 48 19 4b 7d 48 1a 7b 7b 48 7b 49
..}@.H.K}H.{{H{I
got : 0020: 7f 7d 7f 7f 7f 7f 7b 7d 19 49 1a 48 7f 47 7f 47
.}....{}.I.H.G.G
got : 0030: 79 4b 7f 4b 77 7f 79 47 19 7d 1a 7f 7b 48 7f 47
yK.Kw.yG.}..{H.G
got : 0040: 79 7f 7f 7d 1a 48 1a 7d 19 47 1c 48 77 48 77 7d
y..}.H.}.G.HwHw}
got : 0050: 19 7b 7d 48 7d 7f 19 7b 7f 48 1c 47 1a 7b 7d 7d
.{}H}..{.H.G.{}}
got : 0060: 1c 40 77 49 77 40 7f 7f 7d 49 19 7f 7b 49 7f 47
.@wIw@..}I..{I.G
got : 0070: 19 48 7d 7b 7f 48 1a 7b 1c 49 7d 7f 77 40 7b 7b
.H}{.H.{.I}.w@{{
got : 0080: 00 .
not ok 1 - do_test(&tests[0])
# Failed test (sha512.c:main() at line 1046)
# Looks like you failed 1 tests of 1.
When running on my x86 laptop, the test succeeds:
$ ./qemu-s390x -cpu max ~/sha512
qemu-s390x: warning: 'msa5-base' requires 'kimd-sha-512'.
qemu-s390x: warning: 'msa5-base' requires 'klmd-sha-512'.
1..1
h : 0000: 38 31 a6 a6 15 5e 50 9d ee 59 a7 f4 51 eb 35 32
81...^P..Y..Q.52
h : 0010: 4d 8f 8f 2d f6 e3 70 88 94 74 0f 98 fd ee 23 88
M..-..p..t....#.
h : 0020: 9f 4d e5 ad b0 c5 01 0d fb 55 5c da 77 c8 ab 5d
.M.......U\.w..]
h : 0030: c9 02 09 4c 52 de 32 78 f3 5a 75 eb c2 5f 09 3a
...LR.2x.Zu.._.:
got : 0000: 33 38 33 31 61 36 61 36 31 35 35 65 35 30 39 64
3831a6a6155e509d
got : 0010: 65 65 35 39 61 37 66 34 35 31 65 62 33 35 33 32
ee59a7f451eb3532
got : 0020: 34 64 38 66 38 66 32 64 66 36 65 33 37 30 38 38
4d8f8f2df6e37088
got : 0030: 39 34 37 34 30 66 39 38 66 64 65 65 32 33 38 38
94740f98fdee2388
got : 0040: 39 66 34 64 65 35 61 64 62 30 63 35 30 31 30 64
9f4de5adb0c5010d
got : 0050: 66 62 35 35 35 63 64 61 37 37 63 38 61 62 35 64
fb555cda77c8ab5d
got : 0060: 63 39 30 32 30 39 34 63 35 32 64 65 33 32 37 38
c902094c52de3278
got : 0070: 66 33 35 61 37 35 65 62 63 32 35 66 30 39 33 61
f35a75ebc25f093a
got : 0080: 00 .
ok 1 - do_test(&tests[0])
BTW, we recently also saw some issues with the migration qtest on a s390x
host, maybe that's related:
https://app.travis-ci.com/gitlab/qemu-project/qemu/jobs/562674331#L7834
https://app.travis-ci.com/github/huth/qemu/jobs/562290832#L7783
?