opnsense-src/sys
Archie Cobbs 7734ea0612 Improve performance in the case where ip_output() returns an error.
When this happens, we know for sure that the packet data was not
received by the peer. Therefore, back out any advancing of the
transmit sequence number so that we send the same data the next
time we transmit a packet, avoiding a guaranteed missed packet and
its resulting TCP transmit slowdown.

In most systems ip_output() probably never returns an error, and
so this problem is never seen. However, it is more likely to occur
with device drivers having short output queues (causing ENOBUFS to
be returned when they are full), not to mention low memory situations.

Moreover, because of this problem writers of slow devices were
required to make an unfortunate choice between (a) having a relatively
short output queue (with low latency but low TCP bandwidth because
of this problem) or (b) a long output queue (with high latency and
high TCP bandwidth). In my particular application (ISDN) it took
an output queue equal to ~5 seconds of transmission to avoid ENOBUFS.
A more reasonable output queue of 0.5 seconds resulted in only about
50% TCP throughput. With this patch full throughput was restored in
the latter case.

Reviewed by:	freebsd-net
2000-08-03 23:23:36 +00:00
..
alpha Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
amd64 Handle write page faults (both write only or read-modify-write) as MI vm 2000-07-31 14:47:14 +00:00
boot - Fixed %si (offset to partition table) in boot. 2000-08-03 13:01:45 +00:00
cam Support for the Panasonic / Matshita USB FDD. 2000-07-31 12:40:26 +00:00
coda Remove 42 unneeded #include <sys/ioccom.h>. 2000-05-03 07:31:38 +00:00
compat Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
compile
conf * Create entire directory path for modules. 2000-08-03 09:06:53 +00:00
contrib/dev Remove these here, these were repocopied to src/sys/ufs/ffs. 2000-06-23 00:11:32 +00:00
crypto sync with kame tree as of july00. tons of bug fixes/improvements. 2000-07-04 16:35:15 +00:00
ddb Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
dev Add a comment as to where stdarg.h applies. 2000-08-03 03:05:50 +00:00
fs Rename the loadable nullfs kernel module: null -> nullfs 2000-07-28 11:54:09 +00:00
geom Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
gnu This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
i4b Borrow phk's axe and apply the next stage of config(8)'s evolution. 2000-06-13 22:28:50 +00:00
i386 Merge from GENERIC. Mostly reenable some devices and add SOFTUPDATES 2000-08-03 21:51:03 +00:00
isa Allow use of TSC even if APM is compiled in but disabled. 2000-07-30 21:05:22 +00:00
isofs/cd9660 This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
kern Modify to use fixed STAILQ_LAST(). 2000-08-03 16:37:46 +00:00
libkern Comment out unavailable call. This needs to be revisited when the entropy 2000-06-25 10:15:58 +00:00
miscfs Rename the loadable nullfs kernel module: null -> nullfs 2000-07-28 11:54:09 +00:00
modules The solo driver now works for playback, so far as I can tell. 2000-08-01 22:42:22 +00:00
msdosfs Certain error contitions cause msdosfs_rename() to decrement the 2000-07-14 11:52:56 +00:00
net Replace nonexistent !defined(_LKM) by !defined(KLD_MODULE) 2000-08-01 00:40:32 +00:00
netatalk Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netatm Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netgraph Followup to previous commit.. 2000-07-25 18:57:20 +00:00
netinet Improve performance in the case where ip_output() returns an error. 2000-08-03 23:23:36 +00:00
netinet6 GRRR! Fix the 'panic: ip6_init' caused by darrenr's incomplete changes 2000-08-02 01:02:42 +00:00
netipx Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
netkey Add missing #include to unbreak IPSEC_DEBUG builds 2000-07-07 08:36:00 +00:00
netnatm Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
netncp Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
netns Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfs This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
nfsclient This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
nfsserver This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
ntfs Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
nwfs Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
pc98 Commented out card and pcic devices because they are broken in pc98 port. 2000-08-02 09:05:26 +00:00
pccard Fix a bug so that we have correct number of pccard instances in pcic_attach(). 2000-07-24 21:44:00 +00:00
pci Add the ESS Solo-1 to generic chip match. 2000-08-03 13:46:52 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc Support bounce buffers for ISA DMA on the alpha. This is required for the 2000-06-19 18:41:27 +00:00
rpc $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
svr4 Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
sys Make check for empty list in STAILQ_LAST() more readable. 2000-08-03 17:31:56 +00:00
tools remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
ufs Fix the lockmgr panic everyone is seeing at shutdown time. 2000-08-01 14:15:07 +00:00
vm Minor cleanups: 2000-07-28 22:03:08 +00:00
Makefile If "MODULES_WITH_WORLD" is defined, sys/modules will be built with the 2000-06-17 10:51:56 +00:00