[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r17540: {tor} Add a description of how to make AES parallelized across cor (tor/trunk/doc)



Author: nickm
Date: 2008-12-09 15:49:34 -0500 (Tue, 09 Dec 2008)
New Revision: 17540

Modified:
   tor/trunk/doc/TODO.021
Log:
Add a description of how to make AES parallelized across cores to TODO.021.

Modified: tor/trunk/doc/TODO.021
===================================================================
--- tor/trunk/doc/TODO.021	2008-12-09 20:48:22 UTC (rev 17539)
+++ tor/trunk/doc/TODO.021	2008-12-09 20:49:34 UTC (rev 17540)
@@ -238,6 +238,28 @@
 
   - Handle multi-core cpus better
     - Split circuit AES across cores
+      - Split cell_queue_t into a new structure with a processed subqueue,
+        an unprocessed subqueue, and a symmetric key.
+      - Write a function to pull cells from the unprocessed subqueue,
+        en/decrypt them, and place them on the processed subqueue.
+      - When a cell is added to a queue that previously had no
+        unprocessed cells, put that queue into a set of queues that
+        need to be processed.  When the last cell is processed in a
+        queue, remove it from the set of queues that need to be
+        processed.
+      - Worker code to process queues in round-robin fashion.
+      - Think about how to be fair to differet circuits _and_ about to get
+        CPU-affinity, if that matters.
+      - When a cell is processed and placed onto a processed subqueue
+        that was previously empty, _and_ the or_conn output buffer
+        that the queue is targetting is empty, stick the buffer onto a
+        list of buffers that need attention and notify the main
+        thread if it was not already on the list.
+      - When the main thread gets notified, it pumps those buffers.
+        (i.e., it puts cells onto them from some of their circuits).
+      - To free a queue that is not currently processing, grab its lock
+        and free it.
+      - To free a queue that _is_ processing, .... ?
 
   - Documentation
 P   - Make documentation realize that location of system configuration file