Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 17 Jan 2012 21:14:21 +0400
From: Solar Designer <>
Subject: Re: Fork=n


On Tue, Jan 17, 2012 at 11:57:44AM -0500, Rich Rumble wrote:
> Sorry to bring this thread back up again, something I noticed using
> the -fork code from the contest is that each fork acted as it's own
> single john instance (seems obvious) and thus the password hashes
> are loaded for each, not shared like in OMP.

That's not entirely true.  I intentionally put the fork() call after the
hashes are loaded - so they were mostly shared between the child
processes.  Then as passwords get cracked and individual copy-on-write
pages are modified, memory usage of the individual processes starts to
grow slowly.

I don't know if Cygwin implements this about as well as typical
Unix-like systems do or not, though.

> I only *really* noticed
> because I had a large DES file I was playing with and noticed how large
> my memory consumption got.

How large did it get, specifically?  And how did you measure?  Maybe you
merely assumed that each process had its own copy of the data, whereas
in reality the data was mostly shared and you still had plenty of free
RAM (or rather RAM available and used for disk caching as it normally is)?

Or maybe you got a large percentage of passwords cracked in that run,
which explains why each process would have its own copy of many of the

> Again I'm not sure if this code is
> going to make it back into JtR in a meaningful way, but if it did "sharing"
> the hash file might be a good thing.

It already did what it could in this respect given the fork() model.

The problem you describe is fully present with MPI, but it's mostly
absent with the contest's --fork patch unless a lot of passwords get
cracked.  And indeed it is fully absent with OpenMP.

Thank you for bringing this up!


Powered by blists - more mailing lists

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