Date: Sat, 17 Jun 2006 17:32:38 +0000 (UTC) From: Andre Oppermann <andre@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netinet tcp_input.c tcp_syncache.c tcp_var.h Message-ID: <200606171732.k5HHWdl9086272@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
andre 2006-06-17 17:32:38 UTC FreeBSD src repository Modified files: sys/netinet tcp_input.c tcp_syncache.c tcp_var.h Log: Add locking to TCP syncache and drop the global tcpinfo lock as early as possible for the syncache_add() case. The syncache timer no longer aquires the tcpinfo lock and timeout/retransmit runs can happen in parallel with bucket granularity. On a P4 the additional locks cause a slight degression of 0.7% in tcp connections per second. When IP and TCP input are deserialized and can run in parallel this little overhead can be neglected. The syncookie handling still leaves room for improvement and its random salts may be moved to the syncache bucket head structures to remove the second lock operation currently required for it. However this would be a more involved change from the way syncookies work at the moment. Reviewed by: rwatson Tested by: rwatson, ps (earlier version) Sponsored by: TCP/IP Optimization Fundraise 2005 Revision Changes Path 1.299 +9 -6 src/sys/netinet/tcp_input.c 1.87 +286 -255 src/sys/netinet/tcp_syncache.c 1.130 +9 -6 src/sys/netinet/tcp_var.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606171732.k5HHWdl9086272>