[tor-bugs] #16764 [Tor]: Simplify Tor's control flow graph to the extent we can.

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Aug 11 14:57:26 UTC 2015


#16764: Simplify Tor's control flow graph to the extent we can.
-----------------------------+--------------------------------
     Reporter:  nickm        |      Owner:
         Type:  enhancement  |     Status:  new
     Priority:  normal       |  Milestone:  Tor: 0.2.7.x-final
    Component:  Tor          |    Version:
   Resolution:               |   Keywords:  SponsorS, blob
Actual Points:               |  Parent ID:
       Points:               |
-----------------------------+--------------------------------

Comment (by nickm):

 In addition to the tickets currently open, these seem like promising areas
 to try removing a single call dependency on.  Each of them would remove
 the stated number of functions from the largest SCC:
 {{{
 [(5, 'cell_queues_check_size', 'called by',
 'append_cell_to_circuit_queue'),
  (5, 'circuit_build_failed', 'called by', 'circuit_mark_for_close_'),
  (5, 'circuits_handle_oom', 'called by', 'cell_queues_check_size'),
  (5,
   'initiate_descriptor_downloads',
   'called by',
   'launch_descriptor_downloads'),
  (6,
   'connection_or_write_var_cell_to_buf',
   'called by',
   'connection_or_send_versions'),
  (6,
   'connection_tls_continue_handshake',
   'called by',
   'connection_tls_start_handshake'),
  (6,
   'connection_tls_start_handshake',
   'called by',
   'connection_or_finished_connecting'),
  (7,
   'connection_dir_request_failed',
   'called by',
   'directory_initiate_command_rend'),
  (7,
   'update_all_descriptor_downloads',
   'called by',
   'routerlist_retry_directory_downloads'),
  (8,
   'connection_or_finished_connecting',
   'called by',
   'connection_or_connect'),
  (12, 'accounting_run_housekeeping', 'called by', 'or_state_save'),
  (12, 'accounting_set_wakeup_time', 'called by', 'configure_accounting'),
  (12, 'configure_accounting', 'called by', 'accounting_run_housekeeping'),
  (12, 'init_keys', 'called by', 'accounting_set_wakeup_time'),
  (12, 'or_state_save', 'called by', 'tor_cleanup'),
  (13, 'connection_or_connect', 'called by', 'channel_tls_connect'),
  (16, 'lost_owning_controller', 'called by', 'connection_control_closed'),
  (16, 'tor_cleanup', 'called by', 'lost_owning_controller'),
  (18, 'connection_write_to_buf_impl_', 'called by',
 'connection_write_to_buf'),
  (19, 'connection_control_closed', 'called by', 'connection_free')]
 }}}

 And these are the functions which (after the currently open tickets are
 applied) which pull the most other functions into the largest SCC.
 {{{
 [(8, 'connection_or_finished_connecting'),
  (9, 'connection_ap_handshake_attach_circuit'),
  (10, 'circuit_has_opened'),
  (10, 'routerlist_retry_directory_downloads'),
  (11, 'directory_get_from_dirserver'),
  (12, 'accounting_run_housekeeping'),
  (12, 'accounting_set_wakeup_time'),
  (12, 'configure_accounting'),
  (12, 'init_keys'),
  (12, 'or_state_save'),
  (13, 'channel_tls_connect'),
  (13, 'connection_or_connect'),
  (16, 'lost_owning_controller'),
  (16, 'tor_cleanup'),
  (18, 'connection_write_to_buf'),
  (18, 'connection_write_to_buf_impl_'),
  (19, 'connection_control_closed'),
  (19, 'connection_free'),
  (34, 'directory_initiate_command_rend'),
  (40, 'circuit_mark_for_close_')]
 }}}

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


More information about the tor-bugs mailing list