Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 25 Aug 2015 15:27:47 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: 7z-opencl crashes with auto-tuning

magnum, Lei -

The 7z-opencl format passes test when run with explicit GWS and LWS, but
crashes during/after my patched auto-tuning:

[solar@...er run]$ LWS=64 GWS=16384 OMP_NUM_THREADS=1 ./john -test -form=7z-opencl -dev=1 -v=4
Warning: OpenMP is disabled; a non-OpenMP build may be faster
Device 1: Tahiti [AMD Radeon HD 7900 Series]
Benchmarking: 7z-opencl, 7-Zip (512K iterations) [SHA256 OPENCL AES]... Local worksize (LWS) 64, global worksize (GWS) 16384
DONE
Speed for cost 1 (iteration count) of 524288
Warning: "Many salts" test limited: 1/256
Many salts:     4334 c/s real, 234057 c/s virtual
Only one salt:  4334 c/s real, 204800 c/s virtual

[solar@...er run]$ OMP_NUM_THREADS=1 ./john -test -form=7z-opencl -dev=1 -v=4
Warning: OpenMP is disabled; a non-OpenMP build may be faster
Device 1: Tahiti [AMD Radeon HD 7900 Series]
Benchmarking: 7z-opencl, 7-Zip (512K iterations) [SHA256 OPENCL AES]... Calculating best global worksize (GWS); max. 7.500s total for crypt_all()
gws:        64          29 c/s    15204352 rounds/s    2.142s per crypt_all()!
gws:       128          59 c/s    30932992 rounds/s    2.143s per crypt_all()!
gws:       256         119 c/s    62390272 rounds/s    2.141s per crypt_all()!
gws:       512         238 c/s   124780544 rounds/s    2.149s per crypt_all()+
gws:      1024         470 c/s   246415360 rounds/s    2.174s per crypt_all()+
gws:      2048         936 c/s   490733568 rounds/s    2.187s per crypt_all()+
gws:      4096        1838 c/s   963641344 rounds/s    2.228s per crypt_all()+
gws:      8192        3667 c/s  1922564096 rounds/s    2.233s per crypt_all()+
gws:     16384        4391 c/s  2302148608 rounds/s    3.730s per crypt_all()+
gws:     32768        4666 c/s  2446327808 rounds/s    7.022s per crypt_all()+
gws:     65536        4862 c/s  2549088256 rounds/s   13.477s per crypt_all() - too slow
Calculating best local worksize (LWS)
Testing GWS=32768 LWS=64 ... 179973482ns
Testing GWS=32768 LWS=128 ... 180022667ns
Testing GWS=32640 LWS=192 ... 213664297ns
Testing GWS=32768 LWS=256 ... 180046963ns
Calculating best global worksize (GWS); max. 15s total for crypt_all()
Segmentation fault

Sometimes it crashes like this:

Calculating best global worksize (GWS); max. 15s total for crypt_all()
*** glibc detected *** ./john: malloc(): smallbin double linked list corrupted: 0x0000000003010c00 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x75e66)[0x7fe2a29f4e66]
/lib64/libc.so.6(+0x79c3f)[0x7fe2a29f8c3f]
/lib64/libc.so.6(__libc_malloc+0x71)[0x7fe2a29f96b1]
/usr/lib64/libamdocl64.so(+0x27704ed)[0x7fe29f4154ed]
/usr/lib64/libamdocl64.so(+0x27705e9)[0x7fe29f4155e9]
/usr/lib64/libamdocl64.so(+0x717516)[0x7fe29d3bc516]
/usr/lib64/libamdocl64.so(+0x7198cd)[0x7fe29d3be8cd]
/usr/lib64/libamdocl64.so(+0x77a6bf)[0x7fe29d41f6bf]
/usr/lib64/libamdocl64.so(+0x76159c)[0x7fe29d40659c]
/usr/lib64/libamdocl64.so(+0x797261)[0x7fe29d43c261]
/usr/lib64/libamdocl64.so(+0x6df505)[0x7fe29d384505]
/usr/lib64/libamdocl64.so(+0x6cb4eb)[0x7fe29d3704eb]
/usr/lib64/libamdocl64.so(+0x6bd1e7)[0x7fe29d3621e7]
/usr/lib64/libamdocl64.so(+0x6bd426)[0x7fe29d362426]
/usr/lib64/libamdocl64.so(+0x68e1c6)[0x7fe29d3331c6]
/usr/lib64/libamdocl64.so(+0x68e276)[0x7fe29d333276]
/usr/lib64/libamdocl64.so(+0x687615)[0x7fe29d32c615]
/usr/lib64/libamdocl64.so(clEnqueueWriteBuffer+0x492)[0x7fe29d311fd2]
./john[0x5bf72e]
./john[0x6fc167]
./john[0x6fd2f8]
./john[0x5c13aa]
./john[0x6b664d]
./john[0x6b73cb]
./john[0x6ab078]
./john[0x6abe70]
./john[0x6bdd89]
./john[0x6be852]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x7fe2a299dd5d]
./john[0x4066a9]

I guess it might depend on the GWS tuning only being done once, or maybe
it's some unrelated bug triggered here.

Alexander

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ