
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12-01-31 03:08 PM, Watson Ladd wrote:
On Tue, Jan 31, 2012 at 1:46 PM, David Goulet <dgoulet@ev0ke.net> wrote: 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?
Yep :)
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/Multithreaded...) 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.
Indeed. Adding latency to a node is just a no go I think so definitely things to consider. Thanks! David
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
_______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
Sincerely, Watson Ladd
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQEcBAEBAgAGBQJPKJr1AAoJEELoaioR9I02ymsH/1/30lIjE6UF/lEOxDWdGQp7 JDE9bE6ggoHN8Os/Uuw8Xe6ggE8p7ywbz6ofq+kXZn9PA299gwcH2jtNAa2/Ht9s 3smWlLJkcsNFMx7IXSapictXL1wAV/Mpo7HwmutT3BKRynhwNTmExzutSuEavROD BN4OUV/3YmhFqwOqkvbA5ohNNHBss+BKrRjeeK+LmyP6o4tLYl1tjdMFP+y5Pol5 NoTM0nW2SS0cVA5GssfBbJyTqBsvOQF6JB5y17VhpPz7yGbK5C4qx1VsfQ9jAoZv U2BRaMxVMVtwQrxgk5YFhMGoXEBgTAEp2hG2EsSsE18M9v/R9tHBoIwSkDkAnrM= =IvNp -----END PGP SIGNATURE-----