Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Nov 2010 10:31:52 +0000 (UTC)
From:      Lawrence Stewart <lstewart@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/netinet tcp_reass.c
Message-ID:  <201011061032.oA6AWCGb024217@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
lstewart    2010-11-06 10:31:52 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_8)
    sys/netinet          tcp_reass.c 
  Log:
  SVN rev 214866 on 2010-11-06 10:31:52Z by lstewart
  
  MFC r213913:
  
  Retire the system-wide, per-reassembly queue segment limit. The mechanism is far
  too coarse grained to be useful and the default value significantly degrades TCP
  performance on moderate to high bandwidth-delay product paths with non-zero loss
  (e.g. 5+Mbps connections across the public Internet often suffer).
  
  Replace the outgoing mechanism with an individual per-queue limit based on the
  number of MSS segments that fit into the socket's receive buffer.  This should
  strike a good balance between performance and the potential for resource
  exhaustion when FreeBSD is acting as a TCP receiver. With socket buffer
  autotuning (which is enabled by default), the reassembly queue tracks the socket
  buffer and benefits too.
  
  As the XXX comment suggests, my testing uncovered some unexpected behaviour
  which requires further investigation. By using so->so_rcv.sb_hiwat instead of
  sbspace(&so->so_rcv), we allow more segments to be held across both the socket
  receive buffer and reassembly queue than we probably should. The tradeoff is
  better performance in at least one common scenario, versus a devious sender's
  ability to consume more resources on a FreeBSD receiver.
  
  Sponsored by:   FreeBSD Foundation
  Reviewed by:    andre, gnn, rpaulo
  
  Revision   Changes    Path
  1.364.2.6  +15 -11    src/sys/netinet/tcp_reass.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011061032.oA6AWCGb024217>