Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 31 Dec 2005 06:42:34 +0300
From: Solar Designer <>
Subject: Re:  Re: john improvement suggestions - vc compilation test

On Thu, Dec 22, 2005 at 01:42:51AM +0000, Radim Horak wrote:
> My CPU: AthlonXP (Barton) 2.2 GHz (PR 3200+)
> john 1.6.40
> gcc 3.4.4
> target: win32-cygwin-x86-mmx
> edited:  
> Makefile: CFLAGS = -c -Wall -O4 -funroll-loops -fomit-frame-pointer -
> march=athlon-xp -mtune=athlon-xp
> Benchmarking: NT LM DES [64/64 BS MMX]... DONE
> Raw:    5745K c/s real, 6318K c/s virtual
> -------------------
> ms vc2003
> cl /c /TC /G7 /Ox /O2 /Zl /arch:SSE /FoDES_bs.o DES_bs.c
> Benchmarking: NT LM DES [64/64 BS MMX]... DONE
> Raw:    6514K c/s real, 7152K c/s virtual

OK, I am willing to believe that the speedup is caused by your
recompiling DES_bs.c with better optimizations.  The key setup functions
from that source file should be re-coded in assembly for x86.  I might
do that eventually.

> The improvement seems to be more than just luck, the repeated testing shows it 
> is consistent.

Not really.  I don't think you were trying to change the relative
placement of the object files within your compiled executable.

To provide a somewhat extreme example: merely adding a few kilobytes of
unused padding to the DES_bs_all struct changes the performance at LM
hashes by as much as 40% on my Alpha.  This is for data placement.  But
the same could easily apply to code placement.  Of course, as I have
mentioned before, Alphas are far more susceptible to this because of
their use of direct-mapped caches.

> The most important/critical vc option for improving LM 
> performance seems to be "/arch:SSE"

Hardly, unless you've actually tested with/without this option before
you came to this conclusion.

> Personally I am not interested in LM in john, I just wanted to share this 
> discovery :) with others, who can compile it themselves. Maybe someone can 
> figure out the details of this behaviour and make good use of them. 



Alexander Peslyak <solar at>
GPG key ID: B35D3598  fp: 6429 0D7E F130 C13E C929  6447 73C3 A290 B35D 3598 - bringing security into open computing environments

Powered by blists - more mailing lists

Your e-mail address:

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