As it is today, a socket upcall on a listener socket is made with the V_tcbinfo lock held. [tcp_input -> syncache_socket -> sonewconn -> sowakeup].
I feel that the use of the V_tcbinfo is not consistent in the syncache code. In syncache_add(), we drop the lock before doing the lookup: INP_WUNLOCK(inp); INP_INFO_WUNLOCK(&V_tcbinfo); [..snip..] sc = syncache_lookup(inc, &sch); /* returns locked entry */ However, when going through syncache_expand() or syncache_chkrst() we keep the V_tcbinfo lock. Since the syncache has its own lock, do we need to hold the V_tcbinfo lock when calling syncache_socket()? If there are ideas, or patches, I can give them a try. -vijay _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"