All of lore.kernel.org
 help / color / mirror / Atom feed
* gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure
@ 2015-01-10 17:54 Loic Dachary
  2015-01-10 17:58 ` Loic Dachary
  2015-02-02 21:14 ` Janne Grunau
  0 siblings, 2 replies; 4+ messages in thread
From: Loic Dachary @ 2015-01-10 17:54 UTC (permalink / raw)
  To: Kevin Greenan, Janne Grunau; +Cc: Ceph Development

[-- Attachment #1: Type: text/plain, Size: 2332 bytes --]

Hi Kevin & Janne,

The test gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - fails on the current gf-complete master. The first commit where it fails is

commit 474010a91d35fef5ca7dea77205b6a5c7e68c3e9
Author: Janne Grunau <j@jannau.net>
Date:   Wed Sep 17 16:10:25 2014 +0200

    arm: NEON optimisations for gf_w16

    Optimisations for the 4,16 split table region multiplications.

    Selected time_tool.sh 16 -A -B results for a 1.7 GHz cortex-a9:
    Region Best (MB/s):   532.14   W-Method: 16 -m SPLIT 16 4 -r SIMD -
    Region Best (MB/s):   212.34   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -
    Region Best (MB/s):   801.36   W-Method: 16 -m SPLIT 16 4 -r SIMD -r ALTMAP -
    Region Best (MB/s):    93.20   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -r ALTMAP -
    Region Best (MB/s):   273.99   W-Method: 16 -m SPLIT 16 8 -
    Region Best (MB/s):   270.81   W-Method: 16 -m SPLIT 8 8 -
    Region Best (MB/s):    70.42   W-Method: 16 -m COMPOSITE 2 - -
    Region Best (MB/s):   393.54   W-Method: 16 -m COMPOSITE 2 - -r ALTMAP -

but the test did exit(0) on error instead of exit(1) and we failed to notice.

gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP -
Args: 16 A -1 -m SPLIT 16 4 -r ALTMAP - / size (bytes): 524428
Problem with region multiply (all values in hex):
   Target address base: 0x8fd08e.  Word 0x1 of 0x1fee.  Xor: 0
   Value: 2
   Original source word: d00a
   Product word: a000
   It should be: b01f

Do you have an idea why this happens ? For the record here is the bisect command I used:

git bisect start 6fdd8bc3d32cb2f7fa55d2de9dc7cc5bb2f885aa 36e75c3efec08b1e9bdb9c1f69a5b0018abd8ac7
git bisect run try.sh

#!/bin/bash
log=$(git rev-parse HEAD)
echo $log.log
make distclean > $log.log 2>&1
./autogen.sh >> $log.log 2>&1
./configure >> $log.log 2>&1
make -j4 >> $log.log 2>&1
! test/gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - 2>&1 | grep 'It should be'

Note that b87c41f282dccc1b3649e3ea3fb80d19f820310 fails the test for different reasons:

Args: 16 A -1 -m SPLIT 16 4 -r ALTMAP - / size (bytes): 524428
*** Error in `/home/ubuntu/f/gf-complete/test/.libs/lt-gf_unit': free(): invalid pointer: 0x00ce7070 ***
try.sh: line 8: 12193 Aborted                 test/gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP -

Cheers

-- 
Loïc Dachary, Artisan Logiciel Libre


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure
  2015-01-10 17:54 gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure Loic Dachary
@ 2015-01-10 17:58 ` Loic Dachary
  2015-02-02 21:14 ` Janne Grunau
  1 sibling, 0 replies; 4+ messages in thread
From: Loic Dachary @ 2015-01-10 17:58 UTC (permalink / raw)
  To: Kevin Greenan, Janne Grunau; +Cc: Ceph Development

[-- Attachment #1: Type: text/plain, Size: 2604 bytes --]

I should add that this failure only happens on ARMv7 Ubuntu with gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu7)

On 10/01/2015 18:54, Loic Dachary wrote:
> Hi Kevin & Janne,
> 
> The test gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - fails on the current gf-complete master. The first commit where it fails is
> 
> commit 474010a91d35fef5ca7dea77205b6a5c7e68c3e9
> Author: Janne Grunau <j@jannau.net>
> Date:   Wed Sep 17 16:10:25 2014 +0200
> 
>     arm: NEON optimisations for gf_w16
> 
>     Optimisations for the 4,16 split table region multiplications.
> 
>     Selected time_tool.sh 16 -A -B results for a 1.7 GHz cortex-a9:
>     Region Best (MB/s):   532.14   W-Method: 16 -m SPLIT 16 4 -r SIMD -
>     Region Best (MB/s):   212.34   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -
>     Region Best (MB/s):   801.36   W-Method: 16 -m SPLIT 16 4 -r SIMD -r ALTMAP -
>     Region Best (MB/s):    93.20   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -r ALTMAP -
>     Region Best (MB/s):   273.99   W-Method: 16 -m SPLIT 16 8 -
>     Region Best (MB/s):   270.81   W-Method: 16 -m SPLIT 8 8 -
>     Region Best (MB/s):    70.42   W-Method: 16 -m COMPOSITE 2 - -
>     Region Best (MB/s):   393.54   W-Method: 16 -m COMPOSITE 2 - -r ALTMAP -
> 
> but the test did exit(0) on error instead of exit(1) and we failed to notice.
> 
> gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP -
> Args: 16 A -1 -m SPLIT 16 4 -r ALTMAP - / size (bytes): 524428
> Problem with region multiply (all values in hex):
>    Target address base: 0x8fd08e.  Word 0x1 of 0x1fee.  Xor: 0
>    Value: 2
>    Original source word: d00a
>    Product word: a000
>    It should be: b01f
> 
> Do you have an idea why this happens ? For the record here is the bisect command I used:
> 
> git bisect start 6fdd8bc3d32cb2f7fa55d2de9dc7cc5bb2f885aa 36e75c3efec08b1e9bdb9c1f69a5b0018abd8ac7
> git bisect run try.sh
> 
> #!/bin/bash
> log=$(git rev-parse HEAD)
> echo $log.log
> make distclean > $log.log 2>&1
> ./autogen.sh >> $log.log 2>&1
> ./configure >> $log.log 2>&1
> make -j4 >> $log.log 2>&1
> ! test/gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - 2>&1 | grep 'It should be'
> 
> Note that b87c41f282dccc1b3649e3ea3fb80d19f820310 fails the test for different reasons:
> 
> Args: 16 A -1 -m SPLIT 16 4 -r ALTMAP - / size (bytes): 524428
> *** Error in `/home/ubuntu/f/gf-complete/test/.libs/lt-gf_unit': free(): invalid pointer: 0x00ce7070 ***
> try.sh: line 8: 12193 Aborted                 test/gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP -
> 
> Cheers
> 

-- 
Loïc Dachary, Artisan Logiciel Libre


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure
  2015-01-10 17:54 gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure Loic Dachary
  2015-01-10 17:58 ` Loic Dachary
@ 2015-02-02 21:14 ` Janne Grunau
  2015-02-02 21:47   ` Loic Dachary
  1 sibling, 1 reply; 4+ messages in thread
From: Janne Grunau @ 2015-02-02 21:14 UTC (permalink / raw)
  To: Loic Dachary; +Cc: Kevin Greenan, Ceph Development

On 2015-01-10 18:54:43 +0100, Loic Dachary wrote:
> Hi Kevin & Janne,
> 
> The test gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - fails on the current gf-complete master. The first commit where it fails is
> 
> commit 474010a91d35fef5ca7dea77205b6a5c7e68c3e9
> Author: Janne Grunau <j@jannau.net>
> Date:   Wed Sep 17 16:10:25 2014 +0200
> 
>     arm: NEON optimisations for gf_w16
> 
>     Optimisations for the 4,16 split table region multiplications.
> 
>     Selected time_tool.sh 16 -A -B results for a 1.7 GHz cortex-a9:
>     Region Best (MB/s):   532.14   W-Method: 16 -m SPLIT 16 4 -r SIMD -
>     Region Best (MB/s):   212.34   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -
>     Region Best (MB/s):   801.36   W-Method: 16 -m SPLIT 16 4 -r SIMD -r ALTMAP -
>     Region Best (MB/s):    93.20   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -r ALTMAP -
>     Region Best (MB/s):   273.99   W-Method: 16 -m SPLIT 16 8 -
>     Region Best (MB/s):   270.81   W-Method: 16 -m SPLIT 8 8 -
>     Region Best (MB/s):    70.42   W-Method: 16 -m COMPOSITE 2 - -
>     Region Best (MB/s):   393.54   W-Method: 16 -m COMPOSITE 2 - -r ALTMAP -
> 
> but the test did exit(0) on error instead of exit(1) and we failed to notice.
> 
> gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP -
> Args: 16 A -1 -m SPLIT 16 4 -r ALTMAP - / size (bytes): 524428
> Problem with region multiply (all values in hex):
>    Target address base: 0x8fd08e.  Word 0x1 of 0x1fee.  Xor: 0
>    Value: 2
>    Original source word: d00a
>    Product word: a000
>    It should be: b01f
> 
> Do you have an idea why this happens ? For the record here is the bisect command I used:

yes, it happens because the arm code is incomplete and bogus. I did the 
arm64 code first and then ported it to arm. This function uses arm64 
specific instructions and thus needed a port to arm. The arm version 
misses several computation steps. I guess I trusted the results of the
unit tests and didn't looked at gf_unit output on arm.

I'll send a fix tomorrow.

Janne

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure
  2015-02-02 21:14 ` Janne Grunau
@ 2015-02-02 21:47   ` Loic Dachary
  0 siblings, 0 replies; 4+ messages in thread
From: Loic Dachary @ 2015-02-02 21:47 UTC (permalink / raw)
  To: Janne Grunau; +Cc: Kevin Greenan, Ceph Development

[-- Attachment #1: Type: text/plain, Size: 2429 bytes --]



On 02/02/2015 22:14, Janne Grunau wrote:
> On 2015-01-10 18:54:43 +0100, Loic Dachary wrote:
>> Hi Kevin & Janne,
>>
>> The test gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - fails on the current gf-complete master. The first commit where it fails is
>>
>> commit 474010a91d35fef5ca7dea77205b6a5c7e68c3e9
>> Author: Janne Grunau <j@jannau.net>
>> Date:   Wed Sep 17 16:10:25 2014 +0200
>>
>>     arm: NEON optimisations for gf_w16
>>
>>     Optimisations for the 4,16 split table region multiplications.
>>
>>     Selected time_tool.sh 16 -A -B results for a 1.7 GHz cortex-a9:
>>     Region Best (MB/s):   532.14   W-Method: 16 -m SPLIT 16 4 -r SIMD -
>>     Region Best (MB/s):   212.34   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -
>>     Region Best (MB/s):   801.36   W-Method: 16 -m SPLIT 16 4 -r SIMD -r ALTMAP -
>>     Region Best (MB/s):    93.20   W-Method: 16 -m SPLIT 16 4 -r NOSIMD -r ALTMAP -
>>     Region Best (MB/s):   273.99   W-Method: 16 -m SPLIT 16 8 -
>>     Region Best (MB/s):   270.81   W-Method: 16 -m SPLIT 8 8 -
>>     Region Best (MB/s):    70.42   W-Method: 16 -m COMPOSITE 2 - -
>>     Region Best (MB/s):   393.54   W-Method: 16 -m COMPOSITE 2 - -r ALTMAP -
>>
>> but the test did exit(0) on error instead of exit(1) and we failed to notice.
>>
>> gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP -
>> Args: 16 A -1 -m SPLIT 16 4 -r ALTMAP - / size (bytes): 524428
>> Problem with region multiply (all values in hex):
>>    Target address base: 0x8fd08e.  Word 0x1 of 0x1fee.  Xor: 0
>>    Value: 2
>>    Original source word: d00a
>>    Product word: a000
>>    It should be: b01f
>>
>> Do you have an idea why this happens ? For the record here is the bisect command I used:
> 
> yes, it happens because the arm code is incomplete and bogus. I did the 
> arm64 code first and then ported it to arm. This function uses arm64 
> specific instructions and thus needed a port to arm. The arm version 
> misses several computation steps. I guess I trusted the results of the
> unit tests and didn't looked at gf_unit output on arm.
> 
> I'll send a fix tomorrow.

That's a relief :-)

Thanks !

> 
> Janne
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
Loïc Dachary, Artisan Logiciel Libre


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-02-02 21:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-10 17:54 gf_unit 16 A -1 -m SPLIT 16 4 -r ALTMAP - failure Loic Dachary
2015-01-10 17:58 ` Loic Dachary
2015-02-02 21:14 ` Janne Grunau
2015-02-02 21:47   ` Loic Dachary

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.