[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-bugs] #24448 [Core Tor/Tor]: Channeltls adds the connection write event to main loop when writing a packed cell



#24448: Channeltls adds the connection write event to main loop when writing a
packed cell
------------------------------+--------------------------------
     Reporter:  dgoulet       |      Owner:  (none)
         Type:  defect        |     Status:  new
     Priority:  Medium        |  Milestone:  Tor: 0.3.3.x-final
    Component:  Core Tor/Tor  |    Version:
     Severity:  Normal        |   Keywords:  tor-sched
Actual Points:                |  Parent ID:  #23993
       Points:                |   Reviewer:
      Sponsor:                |
------------------------------+--------------------------------
 This is another problem in the line of channel subsystem and KIST. It is a
 difficult problem because tor is wired to use libevent connection's write
 and read event where KIST needs to control what is put on the network at
 what time.

 So, here is the callstack that leads to the channeltls layer adding the
 `conn->write_event` to the main loop:

 {{{
 channel_tls_write_packed_cell_method()
  -> connection_buf_add()
    -> connection_write_to_buf_commit()
      -> connection_start_writing()
        -> event_add(conn->write_event, NULL)
 }}}

 Basically, when we flush cell(s) from a circuit, we do call back into the
 channel subsystem to write the packed cell (only packed cell on a circuit
 queue). The libevent write event is then added to the main loop. Then KIST
 scheduler kicks in a tick later (10 ms) and can also try to write.

 I don't see a direct impact here but we could avoid an entire
 "write_event" callback on a connection with the KIST scheduler which seems
 to me like a good optimization especially on fast relays.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/24448>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs