Changes between Initial Version and Version 1 of Ticket #16764, comment 1


Ignore:
Timestamp:
Aug 13, 2015, 1:29:20 PM (5 years ago)
Author:
nickm
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #16764, comment 1

    initial v1  
     1Updated to include all branches written so far.  With these, we're at 93 items in the blob, down from ~450 in March.
     2
     3The remaining functions in the blob will be:
     4{{{
     5['append_cell_to_circuit_queue',
     6 'authority_certs_fetch_missing',
     7 'cell_queues_check_size',
     8 'channel_connect',
     9 'channel_connect_for_circuit',
     10 'channel_tls_connect',
     11 'circuit_build_failed',
     12 'circuit_deliver_create_cell',
     13 'circuit_discard_optional_exit_enclaves',
     14 'circuit_establish_circuit',
     15 'circuit_extend_to_new_exit',
     16 'circuit_get_open_circ_or_launch',
     17 'circuit_handle_first_hop',
     18 'circuit_has_opened',
     19 'circuit_launch_by_extend_info',
     20 'circuit_mark_for_close_',
     21 'circuit_package_relay_cell',
     22 'circuit_send_next_onion_skin',
     23 'circuit_testing_opened',
     24 'circuit_try_attaching_streams',
     25 'circuits_handle_oom',
     26 'connection_ap_attach_pending',
     27 'connection_ap_fail_onehop',
     28 'connection_ap_handshake_attach_chosen_circuit',
     29 'connection_ap_handshake_attach_circuit',
     30 'connection_ap_handshake_send_begin',
     31 'connection_ap_handshake_send_resolve',
     32 'connection_ap_handshake_socks_reply',
     33 'connection_ap_handshake_socks_resolved',
     34 'connection_ap_make_link',
     35 'connection_control_closed',
     36 'connection_dir_bridge_routerdesc_failed',
     37 'connection_dir_download_cert_failed',
     38 'connection_dir_request_failed',
     39 'connection_dir_retry_bridges',
     40 'connection_edge_destroy',
     41 'connection_edge_package_raw_inbuf',
     42 'connection_edge_send_command',
     43 'connection_free',
     44 'connection_mark_unattached_ap_',
     45 'connection_or_connect',
     46 'connection_or_finished_connecting',
     47 'connection_or_launch_v3_or_handshake',
     48 'connection_or_send_versions',
     49 'connection_or_write_var_cell_to_buf',
     50 'connection_proxy_connect',
     51 'connection_tls_continue_handshake',
     52 'connection_tls_finish_handshake',
     53 'connection_tls_start_handshake',
     54 'connection_write_to_buf',
     55 'connection_write_to_buf_impl_',
     56 'consider_plaintext_ports',
     57 'consider_testing_reachability',
     58 'directory_get_from_dirserver',
     59 'directory_get_from_hs_dir',
     60 'directory_initiate_command',
     61 'directory_initiate_command_rend',
     62 'directory_initiate_command_routerstatus',
     63 'directory_initiate_command_routerstatus_rend',
     64 'directory_send_command',
     65 'fetch_v2_desc_by_addr',
     66 'fetch_v2_desc_by_descid',
     67 'initiate_descriptor_downloads',
     68 'launch_descriptor_downloads',
     69 'launch_direct_bridge_descriptor_fetch',
     70 'launch_dummy_descriptor_download_as_needed',
     71 'networkstatus_consensus_download_failed',
     72 'pathbias_check_close',
     73 'pathbias_send_usable_probe',
     74 'relay_send_command_from_edge_',
     75 'rend_client_desc_trynow',
     76 'rend_client_fetch_v2_desc',
     77 'rend_client_introcirc_has_opened',
     78 'rend_client_reextend_intro_circuit',
     79 'rend_client_refetch_v2_renddesc',
     80 'rend_client_rendcirc_has_opened',
     81 'rend_client_report_intro_point_failure',
     82 'rend_client_send_establish_rendezvous',
     83 'rend_client_send_introduction',
     84 'rend_service_del_ephemeral',
     85 'rend_service_intro_has_opened',
     86 'rend_service_relaunch_rendezvous',
     87 'rend_service_rendezvous_has_opened',
     88 'retry_bridge_descriptor_fetch_directly',
     89 'router_perform_bandwidth_test',
     90 'routerlist_retry_directory_downloads',
     91 'update_all_descriptor_downloads',
     92 'update_certificate_downloads',
     93 'update_consensus_networkstatus_downloads',
     94 'update_consensus_router_descriptor_downloads',
     95 'update_microdesc_downloads',
     96 'update_networkstatus_downloads',
     97 'update_router_descriptor_downloads']
     98}}}
     99
    1100In 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:
    2101{{{
    3 [(5, 'cell_queues_check_size', 'called by', 'append_cell_to_circuit_queue'),
     102[(4,
     103  'rend_client_fetch_v2_desc',
     104  'called by',
     105  'rend_client_refetch_v2_renddesc'),
     106 (4,
     107  'retry_bridge_descriptor_fetch_directly',
     108  'called by',
     109  'connection_dir_retry_bridges'),
     110 (5, 'cell_queues_check_size', 'called by', 'append_cell_to_circuit_queue'),
    4111 (5, 'circuit_build_failed', 'called by', 'circuit_mark_for_close_'),
    5112 (5, 'circuits_handle_oom', 'called by', 'cell_queues_check_size'),
     
    32139  'called by',
    33140  'connection_or_connect'),
    34  (12, 'accounting_run_housekeeping', 'called by', 'or_state_save'),
    35  (12, 'accounting_set_wakeup_time', 'called by', 'configure_accounting'),
    36  (12, 'configure_accounting', 'called by', 'accounting_run_housekeeping'),
    37  (12, 'init_keys', 'called by', 'accounting_set_wakeup_time'),
    38  (12, 'or_state_save', 'called by', 'tor_cleanup'),
    39  (13, 'connection_or_connect', 'called by', 'channel_tls_connect'),
    40  (16, 'lost_owning_controller', 'called by', 'connection_control_closed'),
    41  (16, 'tor_cleanup', 'called by', 'lost_owning_controller'),
    42  (18, 'connection_write_to_buf_impl_', 'called by', 'connection_write_to_buf'),
    43  (19, 'connection_control_closed', 'called by', 'connection_free')]
     141 (9,
     142  'routerlist_retry_directory_downloads',
     143  'called by',
     144  'circuit_get_open_circ_or_launch'),
     145 (12, 'channel_connect', 'called by', 'channel_connect_for_circuit'),
     146 (12, 'channel_connect_for_circuit', 'called by', 'circuit_handle_first_hop'),
     147 (12, 'channel_tls_connect', 'called by', 'channel_connect'),
     148 (12, 'connection_or_connect', 'called by', 'channel_tls_connect'),
     149 (13, 'circuit_handle_first_hop', 'called by', 'circuit_establish_circuit'),
     150 (14,
     151  'circuit_establish_circuit',
     152  'called by',
     153  'circuit_launch_by_extend_info'),
     154 (18, 'connection_write_to_buf_impl_', 'called by', 'connection_write_to_buf')]
    44155}}}
    45156
    46157And these are the functions which (after the currently open tickets are applied) which pull the most other functions into the largest SCC.
    47158{{{
    48 [(8, 'connection_or_finished_connecting'),
    49  (9, 'connection_ap_handshake_attach_circuit'),
     159 (7, 'rend_client_refetch_v2_renddesc'),
     160 (7, 'update_all_descriptor_downloads'),
     161 (8, 'connection_or_finished_connecting'),
     162 (8, 'directory_get_from_dirserver'),
     163 (9, 'routerlist_retry_directory_downloads'),
     164 (10, 'circuit_get_open_circ_or_launch'),
    50165 (10, 'circuit_has_opened'),
    51  (10, 'routerlist_retry_directory_downloads'),
    52  (11, 'directory_get_from_dirserver'),
    53  (12, 'accounting_run_housekeeping'),
    54  (12, 'accounting_set_wakeup_time'),
    55  (12, 'configure_accounting'),
    56  (12, 'init_keys'),
    57  (12, 'or_state_save'),
    58  (13, 'channel_tls_connect'),
    59  (13, 'connection_or_connect'),
    60  (16, 'lost_owning_controller'),
    61  (16, 'tor_cleanup'),
     166 (12, 'channel_connect'),
     167 (12, 'channel_connect_for_circuit'),
     168 (12, 'channel_tls_connect'),
     169 (12, 'connection_or_connect'),
     170 (13, 'circuit_handle_first_hop'),
     171 (14, 'circuit_establish_circuit'),
     172 (16, 'circuit_launch_by_extend_info'),
     173 (18, 'connection_ap_handshake_attach_circuit'),
    62174 (18, 'connection_write_to_buf'),
    63175 (18, 'connection_write_to_buf_impl_'),
    64  (19, 'connection_control_closed'),
    65  (19, 'connection_free'),
    66  (34, 'directory_initiate_command_rend'),
    67  (40, 'circuit_mark_for_close_')]
     176 (30, 'directory_initiate_command_rend'),
     177 (46, 'circuit_mark_for_close_')]
    68178}}}