[tor-dev] Parallel Crypto - Library dep.

Watson Ladd watsonbladd at gmail.com
Tue Jan 31 20:08:17 UTC 2012

On Tue, Jan 31, 2012 at 1:46 PM, David Goulet <dgoulet at ev0ke.net> wrote:
> Hash: SHA1
> Hi everyone,
> To help the tor project, I'll contribute some of my spare time to improve
> multithreading for the Tor code base.
Color me confused: This is for taking advantage of multiprocessor
systems, correct?
> I've speak a bit with Nick M. and it seems the crypto lib is an important part
> to begin with. The wiki page
> (https://trac.torproject.org/projects/tor/wiki/org/projects/Tor/MultithreadedCrypto)
> indicates, basically, that a worker thread pool with a work queue to dispatch
> crypto events should be the right approach and I do agree.
> Is it acceptable to link an external library to the project being a dependence?
> The library I'm thinking about is "liburcu" which stands for user-space RCU
> (http://lttng.org/urcu). It's a complete set of lockless data structure
> including wait-free queue which can be very useful for our case. It support a
> large variety of architecture and works on BSD and Linux. The Linux kernel use
> RCU mechanism for a lot of internal data structure today so it's quite tested
> and solid.
One future issue I foresee is the use of batching oriented crypto
operations. If we use binary Edwards curves for speed in the onion
skins, then batching becomes a major timesaver. The obvious way to do
this is with workers grabbing and putting back batches, but we also
want to maintain responsiveness. If a router is getting low traffic it
shouldn't wait forever to fill up a batch.
> The question I think is do we want lockless data structure in Tor or it's not
> and will not be necessary for the type of workload ? (lockless re-sizable hash
> tables, red-black tree, stack, linked-list (double also) and queue are available
> as of today).
> Waiting on your feedback guys, either way, I'll begin implementing parallel
> crypto largely based on the wiki page (really good ideas there).
> Thanks a lot!
> David
> Version: GnuPG v1.4.10 (GNU/Linux)
> iQEcBAEBAgAGBQJPKET6AAoJEELoaioR9I02OO0H/2lxrvak2ItAdGsXHsyH2dgz
> U3ePxZUg8Ix5UuZXA/LnP3T7/HBa47mtPMj3hwuz2Wnarf6FulumYA3A9jKsZyxQ
> tf6azD+G7CbZjjYPbe8XYfOZC6+x58mF7SciM/maLoFQLzCvw7ruBBXu8j0Ghw5Q
> hcm8RMIa4UyB0szSpMqkt615sYQBgy7hhEkNKqxnfdP4zIqUIK8mJqBING6r7qU+
> EhnIT5VNzKG9FZPkYNzXOvzbtH0MegNfePsi6gDYlkjR7gekiT9wYH9n5tFTPQUu
> 4BwqaaHR/Wk+zfHaQOmz+KC3eefUqcd+XP82mcPTSUDj4mzG1Sio2ZHKX0IeJVw=
> =r0da
> _______________________________________________
> tor-dev mailing list
> tor-dev at lists.torproject.org
> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
Watson Ladd

"Those who would give up Essential Liberty to purchase a little
Temporary Safety deserve neither  Liberty nor Safety."
-- Benjamin Franklin

More information about the tor-dev mailing list