cvs commit: src/sys/netinet tcp_input.c tcp_syncache.c tcp_var.h
Andre Oppermann
andre at FreeBSD.org
Sat Jun 17 17:32:41 UTC 2006
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
More information about the cvs-src
mailing list