[tor-bugs] #6816 [Tor]: {connection_or, channel}_flush_from_first_active_circuit() should pick a new circuit for each cell

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Wed Oct 3 18:16:04 UTC 2012


#6816: {connection_or,channel}_flush_from_first_active_circuit() should pick a new
circuit for each cell
-----------------------+----------------------------------------------------
 Reporter:  andrea     |          Owner:                    
     Type:  defect     |         Status:  needs_review      
 Priority:  normal     |      Milestone:  Tor: 0.2.4.x-final
Component:  Tor        |        Version:  Tor: 0.2.4.2-alpha
 Keywords:  tor-relay  |         Parent:                    
   Points:             |   Actualpoints:                    
-----------------------+----------------------------------------------------

Comment(by andrea):

 Replying to [comment:7 nickm]:
 >  * Please let me know once you've got profiling result.

 Report from perf is attached; that's from a two hour run as a middle relay
 with 120 kB/sec bandwidth burstable to 160, which used about 30 s of CPU
 time in total.  It looks pretty dominated by crypto operations; summing
 the obviously cryptographic OpenSSL/bignum operations gives me about 95%.
 The heartbeat output said I got about 20M through it during the test run,
 so that makes approx. 41,000 cells, so on this hardware we're looking at
 about 700 microseconds average CPU required per cell, amortizing startup
 costs.  I think we're probably around 35 microseconds per cell for non-
 cryptographic processing.  It does look like malloc is our single most
 expensive non-cryptographic operation, so your points about mallocing
 small blocks may be relevant here.

 Think I should do a test run with master for comparison?

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/6816#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list