Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 7 Jul 2013 23:10:10 +0200
From: Katja Malvoni <kmalvoni@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: Parallella: bcrypt

Hi Yaniv,

I changed one thing in the code I sent in previous emails and now it works.
I did something you recommended not to do - I used e_write and after it I
used e_load_group(). Now both minimal and full code work. But I put it
after e_writes to local memory. If I put e_load after writing to shared
dram than it doesn't work. On the other hand, if it's before e_wirtes to
core's local memory than data in local memory isn't correct for some of the
cores. I got it working in one more way. If I start cores using e_start()
after e_write() (attached code) than it also works.
Can this happen because e_write() to core's local memory stalls, cores are
started before data is ready and write to shared memory happened before
write to local memory (although this doesn't explain how I get wrong data
which is similar to correct data - something is written but not what I send
from host, and it shouldn't be old data since e_reset_system is performed
before writing anything)? And how are e_write() calls executed? Always in
same order as invoked in code or there is difference between e_write() to
shared memory and e_write() to core's local memory?

Output.txt has output for minimal code, first one is what I get when
executing code from minimal.zip, second one is what I get when putting
e_load_group() after e_write() used to write hash to core's local memory.

At the moment I'm not even thinking about performance, I just want to make
it work when executed in a loop and the only approach that works with only
one call to Epiphany doesn't work when there are multiple calls.

Katja

[ CONTENT OF TYPE text/html SKIPPED ]

e_load_group() BEFORE all e_write()
Execution time - Epiphany: 0.443000 ms
done = 16
core_done[ 0] = 1	 test[ 0] = 
core_done[ 1] = 1	 test[ 1] = 
core_done[ 2] = 1	 test[ 2] = 
core_done[ 3] = 1	 test[ 3] = 
core_done[ 4] = 1	 test[ 4] = 
core_done[ 5] = 1	 test[ 5] = 
core_done[ 6] = 1	 test[ 6] = 
core_done[ 7] = 1	 test[ 7] = 
core_done[ 8] = 1	 test[ 8] = 
core_done[ 9] = 1	 test[ 9] = 
core_done[10] = 1	 test[10] = 
core_done[11] = 1	 test[11] = 
core_done[12] = 1	 test[12] = 
core_done[13] = 1	 test[13] = 
core_done[14] = 1	 test[14] = 
core_done[15] = 1	 test[15] = 
 0: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 1: CCCC.E5YCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 2: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 3: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 4: CCCC.E5YCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 5: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 6: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    4oUp/Z0D05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwKCCCCCCCC
 7: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    4oUp/Z0D05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK
 8: CCCC.E5YCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4Y
    U*U
 9: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
10: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0yOeWYb4YMJKvyOeW
    U*U
11: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
12: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
13: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeWCC$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
14: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
15: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U



e_load_group() AFTER e_write() to core's local memory 

Execution time - Epiphany: 0.442000 ms
done = 16
core_done[ 0] = 1	 test[ 0] = 
core_done[ 1] = 1	 test[ 1] = 
core_done[ 2] = 1	 test[ 2] = 
core_done[ 3] = 1	 test[ 3] = 
core_done[ 4] = 1	 test[ 4] = 
core_done[ 5] = 1	 test[ 5] = 
core_done[ 6] = 1	 test[ 6] = 
core_done[ 7] = 1	 test[ 7] = 
core_done[ 8] = 1	 test[ 8] = 
core_done[ 9] = 1	 test[ 9] = 
core_done[10] = 1	 test[10] = 
core_done[11] = 1	 test[11] = 
core_done[12] = 1	 test[12] = 
core_done[13] = 1	 test[13] = 
core_done[14] = 1	 test[14] = 
core_done[15] = 1	 test[15] = 
 0: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 1: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 2: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 3: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 4: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 5: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 6: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 7: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 8: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
 9: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
10: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
11: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
12: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
13: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
14: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U
15: $2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
    U*U

[ CONTENT OF TYPE application/zip SKIPPED ]

Powered by blists - more mailing lists

Your e-mail address:

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