[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