diff mbox series

[RFC] tests/tcg: drop -cpu max from s390x sha512-mvx invocation

Message ID 20220309112248.4083619-1-alex.bennee@linaro.org
State Superseded
Headers show
Series [RFC] tests/tcg: drop -cpu max from s390x sha512-mvx invocation | expand

Commit Message

Alex Bennée March 9, 2022, 11:22 a.m. UTC
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(-)

Comments

David Hildenbrand March 9, 2022, 11:23 a.m. UTC | #1
On 09.03.22 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


Reviewed-by: David Hildenbrand <david@redhat.com>
Richard Henderson March 9, 2022, 8:44 p.m. UTC | #2
On 3/9/22 01: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(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Thomas Huth March 10, 2022, 8:36 a.m. UTC | #3
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.

  Thomas
Thomas Huth March 10, 2022, 10:21 a.m. UTC | #4
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

?

  Thomas
Alex Bennée March 10, 2022, 10:34 a.m. UTC | #5
Thomas Huth <thuth@redhat.com> writes:

> 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.

The -O3 is included to force the compiler to vectorise the code -
otherwise you will get the same code as the plain sha512 test. However
is it because gcc v11.2.1 is using even more advanced mvx instructions
or just getting it's code generation wrong?

Do the tests also fail when run natively?

>
>  Thomas
Thomas Huth March 10, 2022, 10:41 a.m. UTC | #6
On 10/03/2022 11.34, Alex Bennée wrote:
> 
> Thomas Huth <thuth@redhat.com> writes:
> 
>> 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.
> 
> The -O3 is included to force the compiler to vectorise the code -
> otherwise you will get the same code as the plain sha512 test. However
> is it because gcc v11.2.1 is using even more advanced mvx instructions
> or just getting it's code generation wrong?
> 
> Do the tests also fail when run natively?

No, it's running fine natively (see my other mail), it must be something in 
the s390x TCG backend.

It's definitely related to commit 9bca986df88b8ea ... I just tried to switch 
TCG_TARGET_HAS_bitsel_vec back to 0, and then the test is working fine again...

  Thomas
Alex Bennée March 10, 2022, 11:33 a.m. UTC | #7
Thomas Huth <thuth@redhat.com> writes:

> On 10/03/2022 11.34, Alex Bennée wrote:
>> Thomas Huth <thuth@redhat.com> writes:
>> 
>>> 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.
>> The -O3 is included to force the compiler to vectorise the code -
>> otherwise you will get the same code as the plain sha512 test. However
>> is it because gcc v11.2.1 is using even more advanced mvx instructions
>> or just getting it's code generation wrong?
>> Do the tests also fail when run natively?
>
> No, it's running fine natively (see my other mail), it must be
> something in the s390x TCG backend.
>
> It's definitely related to commit 9bca986df88b8ea ... I just tried to
> switch TCG_TARGET_HAS_bitsel_vec back to 0, and then the test is
> working fine again...

Yeah it doesn't trigger on the s390x I've got so I guess the newer
compilers generates something we've not seen before and that trips up on
the new vector bitsel generation.

At least the test is doing it's job of exercising more of the vector
code generation.

>
>  Thomas
Richard Henderson March 10, 2022, 11:35 a.m. UTC | #8
On 3/10/22 02:21, Thomas Huth wrote:
> 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
> 
> ?

Ok, will look soon.
Would you pop this into an issue so I don't forget, please?


r~
Thomas Huth March 10, 2022, 12:28 p.m. UTC | #9
On 10/03/2022 12.35, Richard Henderson wrote:
> On 3/10/22 02:21, Thomas Huth wrote:
>> On 10/03/2022 09.36, Thomas Huth wrote:
[...]
>>> 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? 
[...]> Ok, will look soon.
> Would you pop this into an issue so I don't forget, please?

Sure, I've created a ticket here:

  https://gitlab.com/qemu-project/qemu/-/issues/898

  Thomas
diff mbox series

Patch

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