Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 2 May 2006 16:09:31 +0400
From: Solar Designer <>
Subject: Re: Tuning John

On Tue, May 02, 2006 at 11:04:25AM +0200, Ami Schwartzman wrote:
> 1) What is the performance gain (if any) by moving john on linux-x86-mmx 
> to linux-64-x86-mmx  for Intel processors?

There should be no performance difference between the linux-x86-mmx and
linux-x86-64-mmx targets.  The only difference is that the former is
for 32-bit Linux/x86 distributions, whereas the latter is for 64-bit
Linux/x86-64 ones that have 32-bit compatibility libraries installed.
Both will use MMX for effective 64-bitness in exactly the same way.

The target which actually produces different code is linux-x86-64.  It
uses native x86-64 instructions instead of MMX.  In practice, the
performance is similar to that of MMX - although it may be 20% worse or
10% better for different hash types, CPUs, and gcc versions.

> 2) Why does the CYGWIN and DJGPP versions do not calculate virtual c/s 
> in the benchmark,

For Cygwin builds, that's because virtual (processor) times are not
available on Windows 9x and I did not bother implementing a (trivial)
check for 9x vs. NT.

For DJGPP builds, that's because processor times are supposed to match
real times (DOS is not a multi-tasking OS), and when they don't it is
not certain what host OS is used to emulate DOS and how it might report
processor times to DOS applications (if at all).  Not that I would
bother implementing this even if it were supported.  The DOS build is
for plain DOS.

> and in general how does John calculate virtual c/s?

It uses the virtual (processor) times spent in each benchmark instead of
the real times for those calculations.

> 3) If we will need to migrate a version of John to MS Visual C++,

I don't think this is a good idea, but I'll answer your question anyway:

> which version should be the easiest to do?

There's no point for you to use anything older than the current 1.7.0.x
versions, nor do I think the use of older versions would somehow be
easier.  If you meant what make target to hack for MSVC, it's up to you.
What "complexity" can those 5 lines have?

Maybe it would be a little bit easier for you to start hacking with the
MinGW build patch, currently available as john-1.7-mingw-2.diff.gz in
the contrib/win32/mingw/ FTP directory.

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

Was I helpful?  Please give your feedback here:

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.