freebsd-nq/sys
Andre Oppermann f62563d33c 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:	darrenr
Tested by:	Darren Baginski
PR:		kern/116335
MFC after:	2 weeks
2012-10-28 17:40:35 +00:00
..
amd64 The 'testing memory' patch gets printed too many times 2012-10-22 11:57:26 +00:00
arm Missing paren. 2012-10-27 22:13:42 +00:00
boot Fix loader crash when some unhalted exception happens during include 2012-10-26 16:32:20 +00:00
bsm
cam Remove priority enforcement from xpt_ation(). It is not good and even not 2012-10-27 10:14:12 +00:00
cddl zfs: fix label validation code in vdev_geom_read_config 2012-10-26 14:50:16 +00:00
compat Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
conf Better comments. 2012-10-28 02:55:51 +00:00
contrib No MII on the RSYS4GBE (AMC-7211/ATCA-7220). 2012-10-26 02:09:55 +00:00
crypto Revert previous commit... 2012-10-10 08:36:38 +00:00
ddb
dev Implement support for the so-called USB feedback endpoint for USB 2012-10-28 14:37:17 +00:00
fs Fix build in case we have SMBVDEBUG turned on. 2012-10-25 21:08:02 +00:00
gdb
geom Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
gnu/fs Add an unified macro to deny ability from the compiler to reorder 2012-10-09 14:32:30 +00:00
i386 Add missed sched_pin(). 2012-10-24 18:21:22 +00:00
ia64 Fix compilation on ia64 when page size is configured for 16KB. 2012-10-28 11:53:54 +00:00
isa
kern The fields of struct timespec32 should be int32_t and not uint32_t. 2012-10-27 23:42:41 +00:00
kgssapi
libkern s/ is is / is /g 2012-09-14 22:00:03 +00:00
mips Add missing return that broke 8-bit CF support in refactoring in r222671. 2012-10-27 23:36:41 +00:00
modules Extend dim's hack from r228978: not only clang but gcc on non-x86 platforms 2012-10-28 02:15:35 +00:00
net o Remove last argument to ip_fragment(), and obtain all needed information 2012-10-26 21:06:33 +00:00
net80211 Add some further BAR TX debugging; it was useful when figuring out 2012-10-28 04:18:49 +00:00
netatalk
netgraph Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
netinet Prevent a flurry of forced window updates when an application is 2012-10-28 17:40:35 +00:00
netinet6 Remove the IPFIREWALL_FORWARD kernel option and make possible to turn 2012-10-25 09:39:14 +00:00
netipsec Do not reduce ip_len by size of IP header in the ip_input() 2012-10-23 08:33:13 +00:00
netipx
netnatm
netncp
netpfil o Remove last argument to ip_fragment(), and obtain all needed information 2012-10-26 21:06:33 +00:00
netsmb Change a duplicated check to clarify that we really want to set a 2012-07-10 21:02:59 +00:00
nfs Add two new options to the nfssvc(2) syscall that allow 2012-10-14 22:33:17 +00:00
nfsclient Do not leave invalid pages in the object after the short read for a 2012-08-14 11:45:47 +00:00
nfsserver Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
nlm Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
ofed remove duplicate semicolons where possible. 2012-10-22 03:00:37 +00:00
opencrypto Revert previous commit... 2012-10-10 08:36:38 +00:00
pc98 The 'testing memory' patch gets printed too many times 2012-10-22 11:57:26 +00:00
pci
powerpc Remove compat options. 2012-10-23 02:20:11 +00:00
rpc Modify the comment to take out the names and URL. 2012-10-25 19:30:58 +00:00
security Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
sparc64 - Give PIL_PREEMPT the lowest priority just above low/stray interrupts. 2012-10-20 12:07:48 +00:00
sys Add CPU percentage limit enforcement to RCTL. The resouce name is "pcpu". 2012-10-26 16:01:08 +00:00
teken
tools Revert previous commit... 2012-10-10 08:36:38 +00:00
ufs Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
vm Const-ify the zone name argument to uma_zcreate(9). 2012-10-26 17:51:05 +00:00
x86 This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
xdr
xen Move the corresponding MTX_SYSINIT() next to their struct mtx declaration 2012-10-26 17:31:35 +00:00
Makefile