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