:Hi, : :It turns out the previous problem (tcp_timer_2msl) is related to :calling tcp_output() in tcp_usr_connect() and tcp_connect(). :For TCP PRU_CONNECT is handled on tcp_thread[0] following two :functions are executed in _that_ thread: :tcp_connect() and tcp_output() : :... :So I made following patch: :- If target port is not tcp_thread[0]'s port, then we free the route :entry allocated by in_pcbladdr(). :- In tcp_usr_connect(), if target port is not tcp_thread[0]'s port, we :dispatch tcp_output to the target port to be called. : :Please review it: :http://leaf.dragonflybsd.org/~sephe/tcp_connect.diff : :Best Regards, :sephe
I like it. We should probably also start adding cpu-assertions to the tcp protocol stack, as a step towards removing the BGL from the protocol stack threads. -Matt Matthew Dillon <[EMAIL PROTECTED]>