svn commit: r232396 - user/andre/tcp_workqueue/sys/netinet
Andre Oppermann
andre at freebsd.org
Fri Mar 2 16:45:29 UTC 2012
On 02.03.2012 17:35, Andre Oppermann wrote:
> Author: andre
> Date: Fri Mar 2 16:35:18 2012
> New Revision: 232396
> URL: http://svn.freebsd.org/changeset/base/232396
>
> Log:
> Prevent a flurry of forced window updates when an application is
> doing small reads on a (partially) filled receive socket buffer.
>
> Normally one would a send a window update every time the available
> space in the socket buffer increases by two times MSS. This leads
> to a flurry of window updates that do not provide any meaningful
> new information to the sender. There still is available space in
> the window and the sender can continue sending data. All window
> updates then get carried by the regular ACKs. Only when the socket
> buffer was (almost) full and the window closed accordingly a window
> updates delivery new information and allows the sender to start
> sending more data again.
>
> Send window updates only every two MSS when the socket buffer
> has less than 1/8 space available, or the available space in the
> socket buffer increased by 1/4 its full capacity, or the socket
> buffer is very small. The next regular data ACK will carry and
> report the exact window size again.
>
> Reported by: sbruno
> Tested by: Darren Baginsky
Oops, the correct last name is "Baginski" and previous version before
some more recent changes to tcp_output() about Aug 2011.
> PR: kern/116335
>
> Modified:
> user/andre/tcp_workqueue/sys/netinet/tcp_output.c
--
Andre
More information about the svn-src-user
mailing list