freebsd-skq/sys
glebius 25da94eb3e Merge from projects/sendfile:
o Introduce a notion of "not ready" mbufs in socket buffers.  These
mbufs are now being populated by some I/O in background and are
referenced outside.  This forces following implications:
- An mbuf which is "not ready" can't be taken out of the buffer.
- An mbuf that is behind a "not ready" in the queue neither.
- If sockbet buffer is flushed, then "not ready" mbufs shouln't be
  freed.

o In struct sockbuf the sb_cc field is split into sb_ccc and sb_acc.
  The sb_ccc stands for ""claimed character count", or "committed
  character count".  And the sb_acc is "available character count".
  Consumers of socket buffer API shouldn't already access them directly,
  but use sbused() and sbavail() respectively.
o Not ready mbufs are marked with M_NOTREADY, and ready but blocked ones
  with M_BLOCKED.
o New field sb_fnrdy points to the first not ready mbuf, to avoid linear
  search.
o New function sbready() is provided to activate certain amount of mbufs
  in a socket buffer.

A special note on SCTP:
  SCTP has its own sockbufs.  Unfortunately, FreeBSD stack doesn't yet
allow protocol specific sockbufs.  Thus, SCTP does some hacks to make
itself compatible with FreeBSD: it manages sockbufs on its own, but keeps
sb_cc updated to inform the stack of amount of data in them.  The new
notion of "not ready" data isn't supported by SCTP.  Instead, only a
mechanical substitute is done: s/sb_cc/sb_ccc/.
  A proper solution would be to take away struct sockbuf from struct
socket and allow protocols to implement their own socket buffers, like
SCTP already does.  This was discussed with rrs@.

Sponsored by:	Netflix
Sponsored by:	Nginx, Inc.
2014-11-30 12:52:33 +00:00
..
amd64 Revert r274772: it is not valid on MIPS 2014-11-25 03:50:31 +00:00
arm Correctly a few incorrect uses of ENTRY/EENTRY and END/EEND 2014-11-30 12:25:04 +00:00
boot Unbreak the code for non-digits below '0' by casting the expression 2014-11-30 08:43:55 +00:00
bsm
cam Coalesce last data move and command status for read commands. 2014-11-25 17:53:35 +00:00
cddl Revert r273060 per discussion with avg@ as we need to make L2ARC 2014-11-26 02:20:25 +00:00
compat The process spin lock currently has the following distinct uses: 2014-11-26 14:10:00 +00:00
conf Ignore more warnings with external gcc 2014-11-29 14:30:39 +00:00
contrib Correctly define constants. 2014-11-28 04:07:06 +00:00
crypto Fix gcc build: preserve const qualifier when casting input values. 2014-11-11 13:37:28 +00:00
ddb ddb: ANSI-fy function declarations. 2014-10-12 18:01:52 +00:00
dev Merge from projects/sendfile: 2014-11-30 12:52:33 +00:00
fs The process spin lock currently has the following distinct uses: 2014-11-26 14:10:00 +00:00
gdb
geom Actually, that was a bad idea. Go back to MAXPARTITIONS. 2014-11-20 17:31:25 +00:00
gnu
i386 MFamd64: Check for invalid flags in the machine context in sigreturn() 2014-11-25 12:52:00 +00:00
isa
kern Merge from projects/sendfile: 2014-11-30 12:52:33 +00:00
kgssapi Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
libkern Sync with userland variant. 2014-11-17 21:01:35 +00:00
mips Add support for Buffalo WZR-HP-AG300H atheros MIPS router. 2014-11-25 17:33:22 +00:00
modules There never was a PC Card joystick attachment that worked. Kill the 2014-11-22 20:31:20 +00:00
net After r275196 unbreak NOIP and NOINET kernels by hiding an otherwise 2014-11-28 14:51:49 +00:00
net80211 Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
netgraph In preparation of merging projects/sendfile, transform bare access to 2014-11-12 09:57:15 +00:00
netinet Merge from projects/sendfile: 2014-11-30 12:52:33 +00:00
netinet6 Do not return unlocked/unreferenced lle in arpresolve/nd6_storelladdr - 2014-11-27 23:06:25 +00:00
netipsec Remove ip4_input() declaration. It was removed in r275133. 2014-11-27 00:27:39 +00:00
netnatm
netpfil pf(4) needs to have a correct checksum during its processing. 2014-11-19 13:31:08 +00:00
netsmb
nfs Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
nfsclient Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
nfsserver
nlm Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
ofed Do not return unlocked/unreferenced lle in arpresolve/nd6_storelladdr - 2014-11-27 23:06:25 +00:00
opencrypto
pc98 Renove faith(4) and faithd(8) from base. It looks like industry 2014-11-09 21:33:01 +00:00
powerpc Add support for dtrace:fbt on modules for PowerPC 2014-11-29 20:54:33 +00:00
rpc In preparation of merging projects/sendfile, transform bare access to 2014-11-12 09:57:15 +00:00
security
sparc64 Revert r274772: it is not valid on MIPS 2014-11-25 03:50:31 +00:00
sys Merge from projects/sendfile: 2014-11-30 12:52:33 +00:00
teken
tools
ufs Merge from projects/sendfile: 2014-11-23 12:01:52 +00:00
vm We already have "int i" in this scope. 2014-11-24 07:57:20 +00:00
x86 Improve support for XSAVE with debuggers. 2014-11-21 20:53:17 +00:00
xdr
xen opt_global.h is included automatically in the build. No need to 2014-11-18 17:06:56 +00:00
Makefile