[tor-reports] Andrea's June 2013 status report

Andrea Shepard andrea at torproject.org
Tue Jul 2 00:44:51 UTC 2013


In June 2013:

 * Investigated non-blocking socket behavior on OpenBSD for #9017

 * Added instrumentation and did testing for #7912

 * Implemented cell queue length fix, then rolled it back because the
   protocol is stupid in a way that meant it enable a different attack
   (*siiiigh*)

 * Reviewed #8822

 * Had a first look at refactoring cmux code to pick among all writeable
   channels rather than just one at a time; did profiling tests on existing
   code
   - Conclusion:
     Nearly all calls into channel_flush_from_first_active_circuit() in
     the current code flow from the read-driven end through
     append_cell_to_circuit_queue() or the write-driven end through
     channel_flush_some_cells().  The proportion depends on where the rate-
     limiting point is (outgoing bandwidth or throttling).

   - Proposed strategy for cmux refactor:
     - Keep track, per channel, of whether the channel wants to
       write (update in append_cell_to_circuit_queue()) and whether it
       can write (update in the write-driven pathway instead of
       channel_flush_some_cells()).

     - Changes to these bits trigger running the scheduling algorithm,
       but at most once per event loop.

     - Scheduler calls enhanced cmux mechanism to use a pluggable scheduling
       policy to choose circuits in preference order *among all available
       channels* rather than one at a time.

-- 
Andrea Shepard
<andrea at torproject.org>
PGP fingerprint: 3611 95A4 0740 ED1B 7EA5  DF7E 4191 13D9 D0CF BDA5
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.torproject.org/pipermail/tor-reports/attachments/20130701/a1fc6993/attachment.sig>


More information about the tor-reports mailing list